We are using OSXFUSE in a Xamarin project for Mac to allow users to use native tools to work with a remote file system. Our issue is that every time an extended attribute is set on a file, the entire application crashes. We can consistently recreate this and have multiple crash logs, but haven't been able to track down why it is crashing.
The easiest way for us to recreate this is to set a tag on a file from the Finder, which calls the setExtendedAttribute:ofItemAtPath:value:position:options:error: method on our file system delegate. We add the extended attribute to an internal cache of our remote file system and return true. Immediately after this is when the application crashes. We've enabled the 'debug' option on OSXFUSE and can see there are no other method calls that are logged before the crash.
If we use the 'auto_xattr' option, everything works but uses the Apple Double files which we want to avoid using.
I’m not very familiar with reading these crash logs, but here is what I think is the relevant information from the crash:
Process: MyApp [712]
Path: /Users/USER/*/MyApp.app/Contents/MacOS/MyApp
Identifier: com.example.MyApp
Version: 1.0.2 (1)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: MyApp [712]
Date/Time: 2017-02-13 16:15:28.870 -0600
OS Version: Mac OS X 10.12.3 (16D32)
Report Version: 12
Time Awake Since Boot: 3400 seconds
System Integrity Protection: enabled
Crashed Thread: 8 tid_c507
Exception Type: EXC_BAD_ACCESS (SIGABRT)
Exception Codes: EXC_I386_GPFLT
Exception Note: EXC_CORPSE_NOTIFY
External Modification Warnings:
Debugger attached to process.
Application Specific Information:
abort() called
Thread 8 Crashed:: tid_c507
0 libsystem_kernel.dylib 0x00007fffe8313dd6 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fffe83ff787 pthread_kill + 90
2 libsystem_c.dylib 0x00007fffe8279420 abort + 129
3 com.example.MyApp 0x000000010b2bbf52 mono_handle_native_sigsegv + 578 (mini-exceptions.c:2341)
4 com.example.MyApp 0x000000010b22d4fa mono_arch_handle_altstack_exception + 90 (exceptions-amd64.c:821)
5 com.example.MyApp 0x000000010b2c7eb8 mono_sigsegv_signal_handler + 440 (mini-runtime.c:2906)
6 libsystem_platform.dylib 0x00007fffe83f2bba _sigtramp + 26
7 ??? 000000000000000000 0 + 0
8 com.example.MyApp 0x000000010b1cdafd xamarin_arch_trampoline + 189 (trampolines-x86_64.m:518)
9 com.example.MyApp 0x000000010b1cee41 xamarin_x86_64_common_trampoline + 110 (trampolines-x86_64-asm.s:59)
10 com.github.osxfuse.frameworks.OSXFUSE 0x000000010b7ceda9 0x10b7c8000 + 28073
11 libosxfuse.2.dylib 0x000000010e530a34 fuse_fs_setxattr + 160
12 libosxfuse.2.dylib 0x000000010e545499 0x10e52f000 + 91289
13 libosxfuse.2.dylib 0x000000010e530a34 fuse_fs_setxattr + 160
14 libosxfuse.2.dylib 0x000000010e537a11 0x10e52f000 + 35345
15 libosxfuse.2.dylib 0x000000010e53b60e 0x10e52f000 + 50702
16 libosxfuse.2.dylib 0x000000010e53d741 0x10e52f000 + 59201
17 libosxfuse.2.dylib 0x000000010e53efc0 fuse_session_process_buf + 22
18 libosxfuse.2.dylib 0x000000010e539d89 fuse_session_loop + 202
19 libosxfuse.2.dylib 0x000000010e535a6d fuse_loop + 523
20 libosxfuse.2.dylib 0x000000010e540901 0x10e52f000 + 71937
21 libosxfuse.2.dylib 0x000000010e540949 fuse_main_real + 15
22 com.github.osxfuse.frameworks.OSXFUSE 0x000000010b7ce9de 0x10b7c8000 + 27102
23 com.apple.Foundation 0x00007fffd46b2c6d __NSThread__start__ + 1243
24 libsystem_pthread.dylib 0x00007fffe83fcaab _pthread_body + 180
25 libsystem_pthread.dylib 0x00007fffe83fc9f7 _pthread_start + 286
26 libsystem_pthread.dylib 0x00007fffe83fc1fd thread_start + 13
Please let me know what other information would help in debugging why OSXFUSE is crashing.
Thanks,
Brad