SeaDrive having a segmentation fault

We’ve got the following issue:
On all Windows machines, the SeaDrive daemon keeps crashing.
The GUI restarts it.
Both logs are relatively meaningless, seadrive.log shows frequent restarts but no errors.
seadrive-gui.log shows that it detected the crash and restarts it.

In them dumps directory are .dmp files which we’ve taken a look at.
In there it states that it does

Attempt to read from address 0000000000000000

So we’re trying to access a null pointer which is clearly an issue.

This issue has started about the same time on all connected clients which makes me believe that some file or state which gets shared to the client triggers this.

The time from (re)start to crash varies, sometimes it happens within minutes, other times it runs fine for a bit before it encounters the crash.

Is there a way to find out which file causes this and to hone in on the problem so we can eventually reproduce it on a clean system?

How would we go about getting this fixed?

You can find a full extracted dumps below.

Clients are up-to-date.
All Systems run on Windows 10

Microsoft (R) Windows Debugger Version 10.0.22621.755 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

Loading Dump File [C:\Users\arthur\Downloads\fa795e60-d40b-4247-b132-8c3cbb21d80d.dmp]
User Mini Dump File: Only registers, stack and portions of memory are available

Symbol search path is: srv*
Executable search path is:
Windows 10 Version 19044 MP (16 procs) Free x64
Product: WinNt, suite: SingleUserTS
Edition build lab: 19041.1.amd64fre.vb_release.191206-1406
Machine Name:
Debug session time: Mon Dec 5 12:16:55.000 2022 (UTC + 1:00)
System Uptime: not available
Process Uptime: 4 days 19:13:40.000


This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(c80.5670): Access violation - code c0000005 (first/second chance not available)
For analysis of this file, run !analyze -v
ntdll!NtWaitForSingleObject+0x14:
00007fff`5c36d144 c3 ret
0:021> !analyze -v


  •                                                                         *
    
  •                    Exception Analysis                                   *
    
  •                                                                         *
    

*** WARNING: Unable to verify timestamp for seadrive.exe
*** WARNING: Unable to verify checksum for pthreadVC3.dll
*** WARNING: Unable to verify timestamp for libsearpc.dll

KEY_VALUES_STRING: 1

Key  : AV.Dereference
Value: NullPtr

Key  : AV.Fault
Value: Read

Key  : Analysis.CPU.mSec
Value: 2264

Key  : Analysis.DebugAnalysisManager
Value: Create

Key  : Analysis.Elapsed.mSec
Value: 35660

Key  : Analysis.Init.CPU.mSec
Value: 2952

Key  : Analysis.Init.Elapsed.mSec
Value: 99315

Key  : Analysis.Memory.CommitPeak.Mb
Value: 120

Key  : Timeline.Process.Start.DeltaSec
Value: 414820

Key  : WER.OS.Branch
Value: vb_release

Key  : WER.OS.Timestamp
Value: 2019-12-06T14:06:00Z

Key  : WER.OS.Version
Value: 10.0.19041.1

FILE_IN_CAB: fa795e60-d40b-4247-b132-8c3cbb21d80d.dmp

CONTEXT: (.ecxr)
rax=0000000000000000 rbx=0000009fedbff5d0 rcx=0000000000000000
rdx=0000000000000000 rsi=0000000000000000 rdi=00000254910581e0
rip=00007ffeee614a40 rsp=0000009fedbff548 rbp=0000000000000000
r8=0000009fedbff5d0 r9=0000000000000000 r10=0000000000008000
r11=0000009fedbff460 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up ei pl nz na pe nc
cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010202
glib_2!g_str_hash:
00007ffeee614a40 0fb611 movzx edx,byte ptr [rcx] ds:0000000000000000=??
Resetting default scope

EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 00007ffeee614a40 (glib_2!g_str_hash)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: 0000000000000000
Attempt to read from address 0000000000000000

PROCESS_NAME: seadrive.exe

READ_ADDRESS: 0000000000000000

ERROR_CODE: (NTSTATUS) 0xc0000005 - Die Anweisung in 0x%p verwies auf Arbeitsspeicher bei 0x%p. Der Vorgang %s konnte im Arbeitsspeicher nicht durchgef hrt werden.

EXCEPTION_CODE_STR: c0000005

EXCEPTION_PARAMETER1: 0000000000000000

EXCEPTION_PARAMETER2: 0000000000000000

STACK_TEXT:
0000009fedbff548 00007ffeee614018 : 0000009fedbff7d0 0000000000000000 0000025495dcebf0 00007fff5c2f47b1 : glib_2!g_str_hash
0000009fedbff550 00007ffeee613ec8 : 00000254910581e0 0000000000000000 0000000000000000 00000254910973b0 : glib_2!g_hash_table_lookup_extended+0x108
0000009fedbff5a0 00007ff67ee2164a : 0000000000000000 0000000000000000 00000254910973b0 00007ffeee62e73d : glib_2!g_hash_table_lookup+0x18
0000009fedbff5d0 0000000000000000 : 0000000000000000 00000254910973b0 00007ffeee62e73d 0000000000000000 : seadrive+0x3164a

SYMBOL_NAME: glib_2!g_str_hash+0

MODULE_NAME: glib_2

IMAGE_NAME: glib-2.dll

STACK_COMMAND: ~21s; .ecxr ; kb

FAILURE_BUCKET_ID: NULL_POINTER_READ_c0000005_glib-2.dll!g_str_hash

OS_VERSION: 10.0.19041.1

BUILDLAB_STR: vb_release

OSPLATFORM_TYPE: x64

OSNAME: Windows 10

FAILURE_ID_HASH: {02eb5b91-73a6-19ff-191c-8481f39fc201}

Followup: MachineOwner

0:021> .exr -1
ExceptionAddress: 00007ffeee614a40 (glib_2!g_str_hash)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: 0000000000000000
Attempt to read from address 0000000000000000

Hello, which version of seadrive are you using?

SeaDrive 2.0.25

Hello, can you send the logs and dump files to us? you can send them to support@seafile.com. Thanks.

Sure, will do.
Is it okay for you if we strip out actual file paths as these contain sensitive information?

Yes, it’s ok.