oliverkurth / rhizofs Goto Github PK
View Code? Open in Web Editor NEWRemote filesystem based on Linux FUSE (Filesystem in userspace), zeromq and Googles Protocol Buffers library.
License: Other
Remote filesystem based on Linux FUSE (Filesystem in userspace), zeromq and Googles Protocol Buffers library.
License: Other
Edit a file in mounted directory using a text editor, notice that changes are updated but not the timestamp. GThis filke was just updated:
okurth@photon-ova-uefi [ ~/projects/tdnf ]$ (topic/okurth/history)$ ls -l history/history.c
-rw-r----- 1 okurth users 23137 Apr 15 23:37 history/history.c
okurth@photon-ova-uefi [ ~/projects/tdnf ]$ (topic/okurth/history)$ date
Mon Apr 18 20:34:47 UTC 2022
This is an issue when using make
.
This seems to be limited to MacOS, and only happens with encryption. Furthermore, from the lldb
output it's also limited to the case where no keypair is set for the client, so it generates its own on the fly. I finally got some data to work on:
Process 22704 resuming
Process 22704 stopped
* thread #10, stop reason = signal SIGABRT
frame #0: 0x00007ff80a1e1202 libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`:
-> 0x7ff80a1e1202 <+10>: jae 0x7ff80a1e120c ; <+20>
0x7ff80a1e1204 <+12>: movq %rax, %rdi
0x7ff80a1e1207 <+15>: jmp 0x7ff80a1daceb ; cerror_nocancel
0x7ff80a1e120c <+20>: retq
Target 0: (rhizofs) stopped.
(lldb) bt
* thread #10, stop reason = signal SIGABRT
* frame #0: 0x00007ff80a1e1202 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x00007ff80a218ee6 libsystem_pthread.dylib`pthread_kill + 263
frame #2: 0x00007ff80a13fb45 libsystem_c.dylib`abort + 123
frame #3: 0x000000010909bfdf libsodium.23.dylib`sodium_misuse + 63
frame #4: 0x00000001090a61f7 libsodium.23.dylib`randombytes_sysrandom_buf + 160
frame #5: 0x0000000109084e5b libsodium.23.dylib`crypto_box_curve25519xsalsa20poly1305_keypair + 26
frame #6: 0x0000000108fdcba3 libzmq.5.dylib`zmq_curve_keypair + 61
frame #7: 0x0000000108ea68af rhizofs`create_socket(ctx=<unavailable>, type=<unavailable>, server_public_key="K%aa{YTm3[k8Zg:jz.dW<Dz*aZU]tI>u]M!}2Pks", client_public_key=0x0000000000000000, client_secret_key=0x0000000000000000) at socketpool.c:112:13 [opt]
frame #8: 0x0000000108ea6abf rhizofs`SocketPool_get_socket(sp=0x0000000108eb52a8) at socketpool.c:145:16 [opt]
frame #9: 0x0000000108ea2b78 rhizofs`Rhizofs_communicate(req=0x00007000067273a0, err=0x0000700006727414, socket_to_use=0x0000000000000000, check_fuse_interrupts=true) at rhizofs.c:193:16 [opt]
frame #10: 0x0000000108ea5680 rhizofs`Rhizofs_statfs(path="/", svfs=0x0000700006727540) at rhizofs.c:910:5 [opt]
frame #11: 0x0000000108f46fd2 libfuse.2.dylib`___lldb_unnamed_symbol328 + 34
frame #12: 0x0000000108f46f90 libfuse.2.dylib`fuse_fs_statfs + 96
frame #13: 0x0000000108f5d147 libfuse.2.dylib`___lldb_unnamed_symbol830 + 55
frame #14: 0x0000000108f46fd2 libfuse.2.dylib`___lldb_unnamed_symbol328 + 34
frame #15: 0x0000000108f46f90 libfuse.2.dylib`fuse_fs_statfs + 96
frame #16: 0x0000000108f4be81 libfuse.2.dylib`___lldb_unnamed_symbol393 + 209
frame #17: 0x0000000108f538d9 libfuse.2.dylib`___lldb_unnamed_symbol557 + 25
frame #18: 0x0000000108f52c75 libfuse.2.dylib`___lldb_unnamed_symbol528 + 1077
frame #19: 0x0000000108f559b9 libfuse.2.dylib`fuse_session_process_buf + 25
frame #20: 0x0000000108f50b16 libfuse.2.dylib`___lldb_unnamed_symbol498 + 326
frame #21: 0x00007ff80a2191d3 libsystem_pthread.dylib`_pthread_start + 125
frame #22: 0x00007ff80a214bd3 libsystem_pthread.dylib`thread_start + 15
(lldb)
Command line was: rhizofs -f --pubkeyfile=/Users/okurth/.config/rhizofs/ubuntu2-devel.key tcp://192.168.249.164:1234 ./ubuntu2-devel
Somehow it runs into this:
frame #3: 0x000000010909bfdf libsodium.23.dylib`sodium_misuse + 63
but following the code in libsodium I wasn't able to find where sodium_misuse()
is called and why. The function calls abort()
unless a handler is set.
Only observed on MacOS with
% gcc --version
Apple clang version 14.0.3 (clang-1403.0.22.14.1)
Target: x86_64-apple-darwin22.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
% brew list libsodium
/usr/local/Cellar/libsodium/1.0.18_1/include/sodium/ (62 files)
/usr/local/Cellar/libsodium/1.0.18_1/include/sodium.h
/usr/local/Cellar/libsodium/1.0.18_1/lib/libsodium.23.dylib
/usr/local/Cellar/libsodium/1.0.18_1/lib/pkgconfig/libsodium.pc
/usr/local/Cellar/libsodium/1.0.18_1/lib/ (2 other files)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.