[Vm-dev] Difficult to debug VM crash with full blocks and Sista V1
nicolas.cellier.aka.nice at gmail.com
Wed Sep 25 23:07:57 UTC 2019
Thanks Ben, nice references!
I opted for a simple reduction of TestCase timeout and/or Smalltalk buffer
size, and could easily obtain a TestCase timeout on linux.
But unfortunately, no crash, no rr...
I have reduced the crash to testSendTimeout on macos, something like
Smalltalk saveAs: 'crash'.
Smalltalk snapshot: true andQuit: true.
20 timesRepeat: [[(SocketTest selector: #testSendTimeout) runCase] on:
TestFailure do: [:exc|]].
Hoping that narrowing will improve repeatability...
Le mer. 25 sept. 2019 à 14:58, Ben Coman <btc at openinworld.com> a écrit :
> On Wed, 25 Sep 2019 at 15:32, Nicolas Cellier <
> nicolas.cellier.aka.nice at gmail.com> wrote:
>> I noticed that many crash happen in testSendTimeout.
>> This test is organizing a race:
>> - Smalltalk fill the socket send buffer
>> - the OS tries to drain
>> The other thing I noticed is that [SocketTest suite run] takes 7 to 8s
>> on macos while only 2 to 3s on ubuntu and windows
>> So it might be that some test times out on macos, while it doesn't on
>> other OS.
>> This would explain that many crash also happen in JITted Timer loop, and
>> that we cannot observe it in other OSes.
>> The access to OS ressources and the race may also explain some
>> randomization of the crash...
>> So one idea would be to make the test timeout in linux too, see if we can
>> make it crash then try using rr.
>> Maybe it's possible with a huge Socket buffer, a smaller image side
>> buffer (we could reduce the size from 1000 to 1 so as to increase overhead).
> How that might be done spiked my interest, so I had a poke around...
> But those might not directly affect the send buffer, so maybe an
> * https://utcc.utoronto.ca/~cks/space/blog/linux/TCPSendbufferDefaultSize
> * https://www.cyberciti.biz/faq/linux-tcp-tuning/
> cheers -ben
> P.S. Probably not specifically useful, but Oh Wow! just-too-impressive and
> more-than-you-could-possible-want-to-know about Linux networking...
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Vm-dev