[LU-15819] Executables run from Lustre may receive spurious SIGBUS signals Created: 04/May/22 Updated: 05/May/22 Resolved: 04/May/22 |
|
| Status: | Closed |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Upstream |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Andrew Perepechko | Assignee: | Andrew Perepechko |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||
| Severity: | 3 | ||||||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||||||
| Description |
|
We received several reports about applications (IOR and other unrelated user-provided programs) started from Lustre receiving SIGBUS signals.
We were able to reproduce the issue with IOR, RHEL7 kernel on the client.
It seems that it is caused by
1) a major fault in the IOR code happens 2) ll_fault() 3) ll_readpage() is issued from filemap_fault() 4) wait_on_page_locked() is issued from filemap_fault() 5) the uptodate check in filemap_fault() fails due to a parallel ClearPageUptodate() called from a blocking AST handler 6) VM_FAULT_SIGBUS is returned |
| Comments |
| Comment by Peter Jones [ 04/May/22 ] |
|
Panda Isn't this a duplicate of Peter |
| Comment by Andrew Perepechko [ 04/May/22 ] |
|
Peter, yes, it is. Sorry, I searched for similar bugs some time ago but forgot to do it right before opening the ticket. We can close this one. |
| Comment by Andreas Dilger [ 04/May/22 ] |
|
While this definitely seems like a duplicate of
It looks like John Hammond has an MPI reproducer on This issue is one of the few 2.15.0 blockers that does not have a fix yet. |
| Comment by Andrew Perepechko [ 04/May/22 ] |
|
We discussed a few possible solutions specifically for this ( E.g. we could add the page->mapping == NULL check like the kernel does in do_generic_file_read() to work around invalidate_mapping_pages(). However, we want to avoid copying filemap_fault() implementations for every supported kernel.
As for alternative fixes for |
| Comment by John Hammond [ 05/May/22 ] |
|
> It looks like John Hammond has an MPI reproducer on The MPI reproducer does not require multiple clients. It only requires 2 procs. You can use oversubscribe to place them both on the same node. It's unlikely that it has much to do with MPI it's just that the application generates the right memory map access pattern to reproduce the bug. I did try a bit to make something simpler but I not successful. It would be good to have a simplified reproducer. |