Sandy Xu

Results 87 comments of Sandy Xu

It looks that `ls` on Mac doesn't call `readdir` or `getdents`, but uses `getattrlistbulk` instead: ``` open_nocancel("/Users/sandy/jfs/a\0", 0x1100004, 0x0) = 4 0 getattrlistbulk(0x4, 0x7FFEEAA48378, 0x7F8DB3808200) = 11 0 fstat64(0x4, 0x7FFEEAA48118,...

https://app.travis-ci.com/github/juicedata/juicefs/builds/250703080

Recent test shows that it's probably caused by thread scheduling when doing epoll. The test process calling mount hangs forever. The stacks are: ``` 26272 [] request_wait_answer+0x102/0x210 [] fuse_simple_request+0x1ac/0x2f0 []...

The test hangs until canceled after 6 hours. Maybe it's deadlocked between: `write, fsync, fallocate, read`

It looks like the process was stuck in kernel(5.15.0-1014-azure #17~20.04.1-Ubuntu SMP Thu Jun 23 20:01:51 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux). Suspicious stacks of juicefs threads: ``` 10190 []__lock_buffer+0x35/0x40 []__buffer_migrate_page+0x192/0x2b0...

The deadlock can be aborted by `echo 1 > /sys/fs/fuse/connections/77/abort`

``` doio(rwtest03) (57766) 20:45:54 --------------------- *** DATA COMPARISON ERROR *** check_file(/tmp/jfs/ltp-DuIUAMIvSR/mm-buff-57749, 8043092, 106026, U:57766:fv-az131-336:doio*, 26, 0) failed Comparison fd is 3, with open flags 0 Corrupt regions follow - unprintable...

``` tag=rwtest03 stime=1658177164 cmdline="export LTPROOT; rwtest -N rwtest03 -c -q -i 60s -n 2 -f buffered -s mmread,mmwrite -m random -Dv 10%25000:$TMPDIR/mm-buff-$$" doio(rwtest03) (55214) 20:46:23 --------------------- *** DATA COMPARISON ERROR...

Here is a design draft at the very beginning: [Quota.md](https://github.com/juicedata/juicefs/files/9204886/Quota.md)

Hard to reproduce. Related test code: ``` mintime = tst_get_fs_timestamp(); TST_EXP_PASS(utime(TEMP_FILE, NULL)); maxtime = tst_get_fs_timestamp(); SAFE_STAT(TEMP_FILE, &statbuf); if (statbuf.st_atime < mintime || statbuf.st_atime > maxtime) tst_res(TFAIL, "utime() did not set...