I find this an easier discussion forum, especially for early dialogs with multiple people.
It’s also good to have new Canary bugs in one place to warn users, alert the dev, etc.
Sometimes they turn into GitHub issues that backreference here. My opinion anyway.
I think you put an extra underscore on your link somehow, but I think you’re clavelm
.
https://forum.duplicati.com/u/clavelm80/summary
is who I thought you are here.
Anyway, I installed 2.1.0.113 on Windows to see if it would show a problem like yours.
It does. Launch from Desktop shortcut starts and stops. Same from Command Prompt, which is disappointing since that’s sometimes a way to see messages other ways miss.
Event Viewer → Windows logs → Application does find one:
Application: Duplicati.GUI.TrayIcon.exe
CoreCLR Version: 8.0.1224.60305
.NET Version: 8.0.12
Description: The process was terminated due to an unhandled exception.
Exception Info: System.TypeInitializationException: The type initializer for 'Duplicati.Library.AutoUpdater.PreloadSettingsLoader' threw an exception.
---> System.UnauthorizedAccessException: Access to the path 'C:\Program Files\Duplicati 2\data\' is denied.
at System.IO.FileSystem.CreateDirectory(String fullPath, Byte[] securityDescriptor)
at System.IO.Directory.CreateDirectory(String path)
at Duplicati.Library.AutoUpdater.DataFolderManager.GetDataFolder(AccessMode mode)
at Duplicati.Library.AutoUpdater.PreloadSettingsLoader..cctor()
--- End of inner exception stack trace ---
at Duplicati.Library.AutoUpdater.PreloadSettingsLoader.GetExecutableMergedSettings(NamedExecutable executable, Boolean portableMode)
at Duplicati.Library.AutoUpdater.PreloadSettingsLoader.ConfigurePreloadSettings(String[]& arguments, NamedExecutable executable, Dictionary`2& dbsettings)
at Duplicati.Library.AutoUpdater.PreloadSettingsLoader.ConfigurePreloadSettings(String[]& arguments, NamedExecutable executable)
at Duplicati.GUI.TrayIcon.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.Net8.Program.<>c__DisplayClass0_0.<Main>b__0()
at Duplicati.Library.Crashlog.CrashlogHelper.WrapWithCrashLog[T](Func`1 method)
at Duplicati.GUI.TrayIcon.Net8.Program.Main(String[] args)
so these might all be the same bug (or at least the same first crash). I previously said that --server-datafolder
option on launch seems to avoid it, but that’s not always the case.
Next crash looks like this:
C:\Program Files\Duplicati 2>Duplicati.GUI.TrayIcon --server-datafolder=%LOCALAPPDATA%\Duplicati
C:\Program Files\Duplicati 2>Crash!
Duplicati.Library.Interface.UserInformationException: Server crashed on startup
---> System.UnauthorizedAccessException: Access to the path 'C:\Program Files\Duplicati 2\Duplicati-trayicon.debug.log' is denied.
at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Duplicati.Library.Logging.StreamLogDestination..ctor(String filename)
at Duplicati.Server.LogWriteHandler.SetServerFile(String path, LogMessageType level)
at Duplicati.Server.Program.ConfigureLogging(Dictionary`2 commandlineOptions)
at Duplicati.Server.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.HostedInstanceKeeper.<>c__DisplayClass3_0.<.ctor>b__0(Object _)
--- End of inner exception stack trace ---
at Duplicati.GUI.TrayIcon.HostedInstanceKeeper..ctor(String[] args)
at Duplicati.GUI.TrayIcon.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.Net8.Program.<>c__DisplayClass0_0.<Main>b__0()
at Duplicati.Library.Crashlog.CrashlogHelper.WrapWithCrashLog[T](Func`1 method)
Failed to write crashlog: System.UnauthorizedAccessException: Access to the path 'C:\Program Files\Duplicati 2\Duplicati.GUI.TrayIcon-crashlog.txt' is denied.
at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.File.OpenHandle(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
at System.IO.File.WriteToFile(String path, FileMode mode, String contents, Encoding encoding)
at Duplicati.Library.Crashlog.CrashlogHelper.LogCrashException(Exception ex)
Unhandled exception. Duplicati.Library.Interface.UserInformationException: Server crashed on startup
---> System.UnauthorizedAccessException: Access to the path 'C:\Program Files\Duplicati 2\Duplicati-trayicon.debug.log' is denied.
at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Duplicati.Library.Logging.StreamLogDestination..ctor(String filename)
at Duplicati.Server.LogWriteHandler.SetServerFile(String path, LogMessageType level)
at Duplicati.Server.Program.ConfigureLogging(Dictionary`2 commandlineOptions)
at Duplicati.Server.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.HostedInstanceKeeper.<>c__DisplayClass3_0.<.ctor>b__0(Object _)
--- End of inner exception stack trace ---
at Duplicati.GUI.TrayIcon.HostedInstanceKeeper..ctor(String[] args)
at Duplicati.GUI.TrayIcon.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.Net8.Program.<>c__DisplayClass0_0.<Main>b__0()
at Duplicati.Library.Crashlog.CrashlogHelper.WrapWithCrashLog[T](Func`1 method)
at Duplicati.GUI.TrayIcon.Net8.Program.Main(String[] args)
and it isn’t current directory based. Still uses the program install folder from cd elsewhere.
I haven’t yet run with portable-mode explicitly = false, but am wondering if it’s wired on:
Seems not, as if I run with --portable-mode=false
(instead of default), failure changes:
C:\Program Files\Duplicati 2>Duplicati.GUI.TrayIcon
C:\Program Files\Duplicati 2>Duplicati.GUI.TrayIcon --portable-mode=true
C:\Program Files\Duplicati 2>Duplicati.GUI.TrayIcon --portable-mode=false
C:\Program Files\Duplicati 2>Crash!
Duplicati.Library.Interface.UserInformationException: Server crashed on startup
---> System.UnauthorizedAccessException: Access to the path 'C:\Program Files\Duplicati 2\Duplicati-trayicon.debug.log' is denied.
at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Duplicati.Library.Logging.StreamLogDestination..ctor(String filename)
at Duplicati.Server.LogWriteHandler.SetServerFile(String path, LogMessageType level)
at Duplicati.Server.Program.ConfigureLogging(Dictionary`2 commandlineOptions)
at Duplicati.Server.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.HostedInstanceKeeper.<>c__DisplayClass3_0.<.ctor>b__0(Object _)
--- End of inner exception stack trace ---
at Duplicati.GUI.TrayIcon.HostedInstanceKeeper..ctor(String[] args)
at Duplicati.GUI.TrayIcon.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.Net8.Program.<>c__DisplayClass0_0.<Main>b__0()
at Duplicati.Library.Crashlog.CrashlogHelper.WrapWithCrashLog[T](Func`1 method)
Failed to write crashlog: System.UnauthorizedAccessException: Access to the path 'C:\Program Files\Duplicati 2\Duplicati.GUI.TrayIcon-crashlog.txt' is denied.
at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.File.OpenHandle(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
at System.IO.File.WriteToFile(String path, FileMode mode, String contents, Encoding encoding)
at Duplicati.Library.Crashlog.CrashlogHelper.LogCrashException(Exception ex)
Unhandled exception. Duplicati.Library.Interface.UserInformationException: Server crashed on startup
---> System.UnauthorizedAccessException: Access to the path 'C:\Program Files\Duplicati 2\Duplicati-trayicon.debug.log' is denied.
at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Duplicati.Library.Logging.StreamLogDestination..ctor(String filename)
at Duplicati.Server.LogWriteHandler.SetServerFile(String path, LogMessageType level)
at Duplicati.Server.Program.ConfigureLogging(Dictionary`2 commandlineOptions)
at Duplicati.Server.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.HostedInstanceKeeper.<>c__DisplayClass3_0.<.ctor>b__0(Object _)
--- End of inner exception stack trace ---
at Duplicati.GUI.TrayIcon.HostedInstanceKeeper..ctor(String[] args)
at Duplicati.GUI.TrayIcon.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.Net8.Program.<>c__DisplayClass0_0.<Main>b__0()
at Duplicati.Library.Crashlog.CrashlogHelper.WrapWithCrashLog[T](Func`1 method)
at Duplicati.GUI.TrayIcon.Net8.Program.Main(String[] args)
Maybe the dev can come up with some good set of workarounds to get things operating?