Opened 7 years ago
Last modified 6 years ago
#1263 new defect
i2psnark does not start with external hard drive (OSX)
Reported by: | xixi | Owned by: | zzz |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | apps/i2psnark | Version: | 0.9.12 |
Keywords: | mac | Cc: | Zlatin Balevsky |
Parent Tickets: | Sensitive: | no |
Description
Problem: i2psnark fails to startup when user has specified an external hard drive as the save location for torrents (i2psnark.dir in i2psnark.config). User receives HTTP 503 Service Unavailable error. i2psnark is not grabbing mount point information correctly.
i2p version 0.9.12-0
OS version OSX Mountain Lion
Problem Description:
- User starts i2psnark for the first time, its i2psnark.dir=i2psnark (the default).
- User sets an external hard drive as the torrent save location, i2psnark operates normally.
- User shuts down i2p and restarts the router.
- i2psnark will not load.
Problem Solution:
- i2psnark is not saving the mount point for the external hard drive correctly in i2psnark.config
- Example: i2psnark saves /Volumes/This? and That/torrents as my i2psnark.dir
- i2psnark works normally until i2p router restart
- i2psnark fails to start
- editing i2psnark.config to i2psnark.dir=/Volumes/This? and That 1/torrents works
- the correct mount point is given by running Disk Utility and selecting the external hard drive, which tells you the mount point
Another fix - changing back to a local directory (i2psnark.dir=i2psnark, for example) works and i2psnark launches after router restart.
No hotfixes (changes to i2psnark.config without restarting i2p router) were attempted. These might work, and speed up debugging time.
Subtickets
Change History (8)
comment:1 Changed 7 years ago by
comment:2 Changed 7 years ago by
wrapper.log error output here - http://pastethis.i2p/show/6971/
important part:
| Launching a JVM... | WrapperManager: Initializing... | Starting I2P 0.9.12-0 | INFO: Native CPUID library libjcpuid-x86-osx.jnilib loaded from resource | INFO: Locally optimized native BigInteger library loaded from file | INFO: Jetty 8.1.14.v20131031 logging to I2P logs using class org.eclipse.jetty.server.Server | 2014-05-03 18:26:54.086:INFO:oejs.Server:jetty-8.1.14.v20131031 | 2014-05-03 18:26:55.940:WARN:oejuc.AbstractLifeCycle:FAILED org.klomp.snark.web.I2PSnarkServlet: javax.servlet.UnavailableException: Resource base does not exist: /Volumes/This and That/torrents
comment:3 Changed 7 years ago by
If this is not reproducible, try the following workflow:
- Connect an external hard drive
- Ensure i2psnark.dir=i2psnark in i2psnark.config
- Start i2p router
- Start i2psnark
- Change i2psnark save location to a folder on external hard drive
- Restart router
- Try to restart i2psnark
If that does not reproduce, try:
- Repeat all the steps above (so that the i2psnark.dir entry is changed)
- Shutdown i2p router
- Eject external hard drive (without unplugging it)
- Remount external hard drive (from Disk Utility)
- Restart i2p router
- Try to restart i2psnark
(maybe this soft eject / re-mount changes the mount point or something)
comment:4 Changed 7 years ago by
<zzz> I don'[t get it
<xixi> ?
<zzz> whats the difference between "This and That" and "This and That 1" ?
<zzz> you're saying it's dropping the " 1" ?
<zzz> it can handle two spaces but not three?
<xixi> but that is not the actual mount point of the drive
<xixi> sorry - "/Volumes/This? and That/" is what the user sees
<xixi> as the file path
<xixi> but the actual path is "/Volumes/This? and That 1/"
<xixi> because the mount point requires that extra "1" for some reason
<xixi> so there is a difference between the file system abstraction the user is aware of and what the actual mount point is
<zzz> ok I need to call in topiltzin our mac guy
<xixi> ok
<zzz> so you set it to "This and That" which is what the user sees but snark doesn't like it on restart?
<xixi> i have added additional workflow for debug
<xixi> correct
comment:5 Changed 7 years ago by
don't know the root cause, but the config save handler should check for existence before saving, using the same test as the webapp resource base method uses.
comment:6 Changed 7 years ago by
Cc: | Zlatin Balevsky added |
---|
re: comment 5 above - We already do have a check for existence before saving, using the same test (File.isDirectory()), and refuse to change the setting if it fails, and print a message.
This appears to be the mount point moving later:
<zab> although googling makes me thing this is an OSX oddity with no real fix or even workaround possible
<zab> http://support.apple.com/kb/TS2474 or "no real fix possible"
<zab> it exists in the Finder UI and may exist in the filesystem after an improper unmount
<zab> some ppl say it exists as an actual directory instead of a mount point
<zab> others recommend parsing the output of 'df'
<zab> or 'du'
<zab> or 'mount'
<zab> https://discussions.apple.com/thread/2063846
<zab> all fugly
<zzz> so the mount point moves later, but somehow the Finder UI hides the fact that it moved?
<zab> either that or Finder is just referencing the regular (non-mountpoint) folder with the same name as the original mountpoint
<zzz> So I don't think we can fix this. Best I can do is add a better log message.
<zab> yeah… I don't think a fix is possible either
<zzz> Is it worth you trying to reproduce it?
<zab> I didn't see anything about using a system api to find out the real mount point
<zab> I could try with an usb drive
<zab> but even if I reproduce it we're stuck with fugly workaround options
<zzz> ok I'm going to update the ticket with the above
comment:7 Changed 7 years ago by
Added router log message in 09f02f697af1317a3bc45c174d4172526b8954de to be 0.9.12-16
comment:8 Changed 6 years ago by
Keywords: | mac added; mount point external hard drive removed |
---|---|
Milestone: | 0.9.13 |
The filepath for external hard drive is not displaying properly in this bug report, some formatting must be changing it.
That is the proper format.