The story behind Athens crashing on Latest Ubuntu

In one of the latest Ubuntu, Athens the cool new vector graphic API was crashing the VM. Now this is fixed. Thanks.

Well, I was curious and wanted to understand the level of pain. I sat one afternoon with Igor and he was puzzled looking at stack assembler trace in gdb and I was even more puzzled. This is where you get the idea of looking for “une aiguille dans une botte de foin” (looking for a needle in hay in a haystack). For normal humans and happy pharo programmer we do get the pain behind …. here is the answer I got from the two amigos igor and ronie that looked at the problem

  
We debugged in both machines at the same time. Installed some debug symbols, looking at the libpixman source code. Disassembling and looking some instructions.

When I saw the use of intrinsics in the source code, I started to suspect a bit of the alignment of some stuff and when Igor, found the segmentation fault causing instruction movdqa  (Move double-quadword aligned), it was clear that it was a stack alignment issue. Checking the Intel manual confirmed this and I asked about whose responsible for aligning the 

stack, suspecting it was a problem with the library not conforming to the ABI. Then, Igor remembered how to change the stack alignment in native boost and it worked.
 
This is why having people with such knowledge around is key to let us (the smart cosy smalltalkers) having fun with our cool language. This is why the consortium should get more members! Wake up guys. 
Tagged

Leave a comment