Skip to content

Loading the same disc image into drives 0 and 1 causes b-em to hang #235

@ZornsLemma

Description

@ZornsLemma

If I load the same disc image into drives 0 and 1 (and maybe do a *. to force disc access) , b-em locks up - doing an strace suggests this is probably down to file locking:

recvmsg(4, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{iov_base="\224\1\22\0\2\0\0\r\7\0 \r\332\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=72}], 1) = 72
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x55d260b8db10, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x55d261592948, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x55d261592838, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x55d261592948, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x55d260cd5758, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x55d260cd5708, FUTEX_WAKE_PRIVATE, 1) = 0
fcntl(42, F_OFD_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=0}) = 0
fcntl(43, F_OFD_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=0}

This is on Linux Mint 21.2 x86-64, FWIW. I've built b-em from the latest master branch (commit 5ce9c1b).

I appreciate this isn't a sensible thing to do, but I did it by accident (I had an image loaded into drive 1 from a while back without realising, then deliberately loaded the same image into drive 0 to use without noticing or caring it was already in drive 1) and I think it would be nice to generate an error or something instead of just locking up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions