divinity76 / cacdrive

harddrive emulator using cloudatcost's "cloud storage" as a storage backend.
The Unlicense
9 stars 4 forks source link

crash on big partitions (> 900GB) when sizeof(int) <8 #7

Closed divinity76 closed 5 years ago

divinity76 commented 5 years ago

here is a crash observed by @Ammar7347 , probably caused by the fact that sizeof(int) is 4 and the partition is > 900GB:

starting 3 worker thread(s)... done.
pausing mainthread..
nbdthread waiting for all workers (0/3) to be become ready. (this usually takes a long time - some problem @CAC login system)
upload queue emptied.
worker #2 ready.
worker #3 ready.
worker #1 ready.
all workers (3/3) ready, nbdthread starting NBD_DO_IT.
upload queue no longer empty! (167264)
./a.out(+0xdcec)[0x5575e0725cec]
./a.out(+0x126a4)[0x5575e072a6a4]
./a.out(+0x1344b)[0x5575e072b44b]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7494)[0x7fc031af9494]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7fc030f9eacf]
./a.out:src/main.cpp:2517: failed to seek to -1734967296 in sector file sectorindex.sec: Unknown error -1
shutting down, cleaning up.. thread doing the cleanup: 140463402186496 
request socket shutting down, worker exiting.
./a.out(+0x550f)[0x5575e071d50f]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x110c0)[0x7fc031b030c0]
/lib/x86_64-linux-gnu/libpthread.so.0(__pthread_rwlock_rdlock+0x0)[0x7fc031afdf30]
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1(CRYPTO_THREAD_read_lock+0x9)[0x7fc030972ec9]
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1(+0x14f730)[0x7fc030900730]
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1(ERR_lib_error_string+0x4e)[0x7fc030900a9e]
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1(ERR_error_string_n+0x66)[0x7fc030900c86]
/usr/local/lib/libcurl.so.4(+0x5604d)[0x7fc031d6504d]
/usr/local/lib/libcurl.so.4(+0x59443)[0x7fc031d68443]
/usr/local/lib/libcurl.so.4(+0x5a15e)[0x7fc031d6915e]
/usr/local/lib/libcurl.so.4(+0x108a2)[0x7fc031d1f8a2]
/usr/local/lib/libcurl.so.4(+0x12223)[0x7fc031d21223]
/usr/local/lib/libcurl.so.4(+0x1d0d6)[0x7fc031d2c0d6]
/usr/local/lib/libcurl.so.4(+0x2fb9e)[0x7fc031d3eb9e]
/usr/local/lib/libcurl.so.4(curl_multi_perform+0x93)[0x7fc031d3fdd3]
./a.out(+0x65be)[0x5575e071e5be]
./a.out(+0xcd6d)[0x5575e0724d6d]
./a.out(+0x144a3)[0x5575e072c4a3]
./a.out(+0x14d59)[0x5575e072cd59]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb9e6f)[0x7fc031829e6f]
./a.out:src/main.cpp:1899: received shutdown signal 11 (Segmentation fault) from PID 28 / UID 0. shutting down..
: Too many open files
divinity76 commented 5 years ago

should probably convert int to int_fast64_t all over the place