I wonder if someone can help, update goes through the process, everything look ok with no error in the GUI log. However I’ve found the following error in the update log:
15-10-19 19:36:46.2|Info|UpdateApp|Starting Sonarr Update Client
15-10-19 19:36:46.4|Info|UpdateApp|Updating Sonarr to version 2.0.0.3527
15-10-19 19:36:46.5|Info|AppFolderInfo|Data directory is being overridden to [/usr/local/etc/sonarr]
15-10-19 19:36:46.6|Debug|UpdateApp|NzbDrone process ID: 16255
15-10-19 19:36:46.6|Debug|UpdateApp|Arguments:
15-10-19 19:36:46.6|Debug|UpdateApp| 16255
15-10-19 19:36:46.6|Debug|UpdateApp| /tmp/nzbdrone_update
15-10-19 19:36:46.6|Debug|UpdateApp| /usr/local/sonarr/NzbDrone/NzbDrone.exe
15-10-19 19:36:46.6|Debug|UpdateApp| /data=/usr/local/etc/sonarr
15-10-19 19:36:46.6|Debug|UpdateApp| /nobrowser
15-10-19 19:36:46.6|Debug|UpdateApp|Using executing application: /usr/local/sonarr/NzbDrone/NzbDrone.exe
15-10-19 19:36:46.6|Debug|UpdateApp|Executable location: /usr/local/sonarr/NzbDrone/NzbDrone.exe
15-10-19 19:36:46.6|Info|UpdateApp|Starting update process. Target Path:/usr/local/sonarr/NzbDrone
15-10-19 19:36:46.6|Info|InstallUpdateService|Verifying requirements before update…
15-10-19 19:36:46.6|Debug|ProcessProvider|Finding process with Id:16255
15-10-19 19:36:46.6|Fatal|UpdateApp|An error has occurred while applying update package.
System.NotSupportedException: This system does not support EnumProcesses
at (wrapper managed-to-native) System.Diagnostics.Process:GetProcesses_internal ()
at System.Diagnostics.Process.GetProcesses () [0x00000] in /wrkdirs/usr/ports/lang/mono/work/mono-4.0.3/mcs/class/System/System.Diagnostics/Process.cs:840
at NzbDrone.Common.Processes.ProcessProvider.GetProcessById (Int32 id) [0x00023] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Common\Processes\ProcessProvider.cs:75
at NzbDrone.Common.Processes.ProcessProvider.Exists (Int32 processId) [0x00000] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Common\Processes\ProcessProvider.cs:58
at NzbDrone.Update.UpdateEngine.InstallUpdateService.Verify (System.String targetFolder, Int32 processId) [0x0005c] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Update\Upda
teEngine\InstallUpdateService.cs:67
at NzbDrone.Update.UpdateEngine.InstallUpdateService.Start (System.String installationFolder, Int32 processId) [0x00000] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Update
\UpdateEngine\InstallUpdateService.cs:79
at NzbDrone.Update.UpdateApp.Start (System.String args) [0x00020] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Update\UpdateApp.cs:59
at NzbDrone.Update.UpdateApp.Main (System.String args) [0x00042] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Update\UpdateApp.cs:43
This is on a flavor of freebsd and Mono 4.0.3. Any ideas?
I cannot upgrade to 4.0.4 due to ports and pkg being 4.0.3. I could go outside this management but I understand other problems can transpire. Therefore does anyone know how to manually update sonarr?
one of the freebsd mono port maintainers did provide me this response though, when showing him the error.
"The NotSupported error is in a mono wrapper around native functions. I have run into similar issues around DirectoryWatchers trying to use kqueue and wrappers around native “internal” commands for copying/moving files. And like the error you are seeing, someone thought they had already patched the kqueue issue and it has subsequently broken again.
I would be interested in seeing the change list between 4.0.3 and 4.0.4 that supposedly fixes this. I’m super busy right now so I don’t have time to drill in, but it looks like you have all the debug information here to resolve the issue if you felt like fixing mono!"
he also agreed it may be worth looking into whether its an issue unique to jails, so it may be helpful if people encountering it on freebsd/freenas etc can state whether they’re in a jail or not
I checked, I was a bit confused with a problem that popped up on qnap.
which was broken in this commit and fixed in this one, but that was specific to qnap. FreeBSD does NOT use that code at all, coz the KERN_PROC and KERN_PROC2 sysctl calls seem to be linux specific. On OSX and BSD, mono will fallback to using /proc (see these lines).
The only problem for FreeBSD that I remember atm was that procfs wasn’t properly mounted.
Ideally, a implementation should be made for FreeBSD that uses the freebsd sys calls available for getting processes. Of course, this requires familiarity with both C coding and FreeBSD.
I do suspect that the inability to get the processes from /proc is related to the jail, but fixing that is a workaround, the ideal solution remains implementing the appropriate syscall, if possible.
I also am having this issue with FreeBSD, until a fix is ready, can anyone point me to a set of instructions to manually update Sonarr? (FlangeMonkey also asked this, but no one replied to it…)
I did it on the latest update recently. The process may vary and its very similar in how you deployed it. My config files are in a different location, so it was safe for me, but I did the install manually. So I did the following:
stopped the service
renamed the existing sonarr folder for backup and backed up my config folder