On 9/4/2017 5:53 PM, Erick Erickson wrote: > Gah, thanks for letting us know. I can't tell you how often > permissions issues have tripped me up. You're right, it does seem like > there could be a better error message though.
I see this code in NativeFSLockFactory, code that completely ignores any problems creating the lockfile, right before the point in the obtainFSLock method where Phil's exception came from: try { Files.createFile(lockFile); } catch (IOException ignore) { // we must create the file to have a truly canonical path. // if it's already created, we don't care. if it cant be created, it will fail below. } I think that if we replaced that code with the following code, the *reason* for ignoring the creation problem (file already exists) will be preserved. Any creation problem (like permissions) would throw a (hopefully understandable) standard Java exception that propagates up into what Solr logs: // If the lockfile already exists, we're going to do nothing. // If there are problems with that lockfile, they will be caught later. // If we *do* create the file here, exceptions will propagate upward. if (Files.notExists(lockFile)) { Files.createFile(lockFile); } The method signature already includes IOException, so this doesn't represent an API change. Thanks, Shawn