Messages in this thread | | | Subject | Re: INFO: task hung in blk_queue_enter | From | Tetsuo Handa <> | Date | Thu, 7 Jun 2018 22:19:06 +0900 |
| |
On 2018/06/07 12:29, Ming Lei wrote: >> The vfs_fsync() isn't necessary in loop_update_dio() since both >> generic_file_write_iter() and generic_file_read_iter() can handle >> buffered io vs dio well. >> >> I will send one patch to remove the vfs_sync() later. > > Hi Tetsuo, > > The issue might be fixed by removing this vfs_sync(), but I'd like to > understand the idea behind since vfs_sync() shouldn't have caused > any IO to this loop queue. > > I also tried to do the test via the following c syzbot, but can't reproduce > it yet after running it for several hours. > > https://syzkaller.appspot.com/x/repro.c?id=4727023951937536 > > Could you share us how you reproduce it?
I just reported that syzbot started hitting vfs_sync() case. I haven't succeeded reproducing vfs_sync() case in my environment.
But in general, I modify "any reproducer provided by syzbot that loops forever" to call exit() if open() etc. failed, for continuing the loop unlikely helps after hitting "Too many open files" error.
res = syscall(__NR_memfd_create, 0x200002c0, 0); if (res != -1) r[1] = res; + else + exit(1);
Thus, I restart the reproducer in a loop from shell rather than keep running for hours.
while :; do echo -n .; ./a.out; done
| |