managarm icon indicating copy to clipboard operation
managarm copied to clipboard

posix-subsystem crash in KmsgFile::readSome

Open qookei opened this issue 1 year ago • 2 comments

Running dmesg | grep -E " S" causes the following assert fail:

In function readSome, file ../../../src/managarm/posix/subsystem/src/devices/kmsg.cpp:52: Assertion 'offset_ == resp.effective_dequeue()' failed!
(gdb) f 5
#5  0x0000000000431e93 in (anonymous namespace)::KmsgFile::readSome (this=<optimized out>, data=<optimized out>, length=<optimized out>) at ../../../src/managarm/posix/subsystem/src/devices/kmsg.cpp:52
52			assert(offset_ == resp.effective_dequeue());
(gdb) p offset_
value has been optimized out
(gdb) p resp
$1 = {static message_id = 3, static head_size = 128, m_error = <optimized out>, p_error = <optimized out>, m_size = <optimized out>, p_size = <optimized out>, m_effective_dequeue = 5845760, p_effective_dequeue = <optimized out>, 
  m_new_dequeue = 5845792, p_new_dequeue = <optimized out>}
(gdb) 

qookei avatar May 02 '24 21:05 qookei

Adding some debug prints reveals:

offset_ = 993272
resp.effective_dequeue() = 993320
In function readSome, file ../../../src/managarm/posix/subsystem/src/devices/kmsg.cpp:54: Assertion 'offset_ == resp.effective_dequeue()' failed!

qookei avatar May 02 '24 21:05 qookei

I'm unable to reproduce this using the command above; are there other ways to cause this?

no92 avatar Jul 12 '24 08:07 no92