llfio icon indicating copy to clipboard operation
llfio copied to clipboard

ff-probe segfault on macOS

Open GodTamIt opened this issue 3 years ago • 1 comments

Here's the output from the program and backtrace from LLDB:

(lldb) run
Process 67173 launched: '/Users/godtamit/src/llfio/programs/build/bin/fs-probe' (x86_64)
Writing 17Gb of temporary test files, this will take a while ...
Attempting to flush all modified data in system and drop all filesystem caches ...
   WARNING: Failed due to Operation not supported
Waiting for hard drive to quieten after temp files written ...

direct=0 sync=0:
Running test system:os:name ...
   system:os:name = Darwin
Running test system:os:ver ...
   system:os:ver = 21.2.0
Running test system:cpu:name ...
   system:cpu:name = GenuineIntel Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
Running test system:cpu:architecture ...
   system:cpu:architecture = x86_64
Running test system:cpu:physical_cores ...
   system:cpu:physical_cores = 4
Running test system:mem:max_bandwidth ...
llfio: Large page allocation successful
Process 67173 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xffffffffffffffff)
    frame #0: 0x00007ff81e520669 libsystem_platform.dylib`_platform_bzero$VARIANT$Haswell + 41
libsystem_platform.dylib`_platform_bzero$VARIANT$Haswell:
->  0x7ff81e520669 <+41>: rep    stosb	%al, %es:(%rdi)
    0x7ff81e52066b <+43>: movq   %rdx, %rax
    0x7ff81e52066e <+46>: popq   %rbp
    0x7ff81e52066f <+47>: retq
Target 0: (fs-probe) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xffffffffffffffff)
  * frame #0: 0x00007ff81e520669 libsystem_platform.dylib`_platform_bzero$VARIANT$Haswell + 41
    frame #1: 0x000000010002dfe3 fs-probe`llfio_v2_713b9dc8::storage_profile::system::mem(sp=0x00000001001ac160, h=0x00007ff7bfeff248) at storage_profile.ipp:189:11
    frame #2: 0x0000000100060dd5 fs-probe`llfio_v2_713b9dc8::storage_profile::item<unsigned long long>::operator(this=0x00000001001ac3e8, sp=0x00000001001ac160, h=0x00007ff7bfeff248)(llfio_v2_713b9dc8::storage_profile::storage_profile&, llfio_v2_713b9dc8::file_handle&) const at storage_profile.hpp:129:14
    frame #3: 0x0000000100060c92 fs-probe`auto llfio_v2_713b9dc8::storage_profile::item_erased::operator(this=0x00007ff7bfefefc0, item=0x00000001001ac3e8)(llfio_v2_713b9dc8::storage_profile::storage_profile&, llfio_v2_713b9dc8::file_handle&) const::'lambda'(auto&)::operator()<llfio_v2_713b9dc8::storage_profile::item<unsigned long long> const>(auto&) const at storage_profile.hpp:168:52
    frame #4: 0x0000000100060b7d fs-probe`auto llfio_v2_713b9dc8::storage_profile::item_erased::invoke<llfio_v2_713b9dc8::storage_profile::item_erased::operator()(llfio_v2_713b9dc8::storage_profile::storage_profile&, llfio_v2_713b9dc8::file_handle&) const::'lambda'(auto&)>(this=0x00000001001ac3e8, f=0x00007ff7bfefefc0) const at storage_profile.hpp:151:16
    frame #5: 0x000000010000571f fs-probe`llfio_v2_713b9dc8::storage_profile::item_erased::operator(this=0x00000001001ac3e8, sp=0x00000001001ac160, h=0x00007ff7bfeff248)(llfio_v2_713b9dc8::storage_profile::storage_profile&, llfio_v2_713b9dc8::file_handle&) const at storage_profile.hpp:168:14
    frame #6: 0x0000000100003705 fs-probe`main(argc=1, argv=0x00007ff7bfeff7f0) at main.cpp:168:25
    frame #7: 0x00000001004594fe dyld`start + 462

GodTamIt avatar Jan 11 '22 23:01 GodTamIt

I don't have access to a Mac, so the port to Mac is mainly me trial and erroring the Mac CI runner.

I wonder if it's the lack of PROT_READ in https://github.com/ned14/llfio/blob/develop/include/llfio/v2.0/detail/impl/posix/utils.ipp#L733?

ned14 avatar Jan 12 '22 09:01 ned14