[argyllcms] Re: dispread crash in Ubuntu 16.04 AMD64 - free(): invalid next size (fast)

  • From: Uwe Röger <uwer@xxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Mon, 22 Aug 2016 12:11:38 +0200

Am 22.08.2016 um 10:51 schrieb Uwe Röger:

Am 22.08.2016 um 08:25 schrieb Graeme Gill:
Uwe Röger wrote:

Ubuntu 16.04.1 Xenial

'*** Error in `/usr/bin/dispread': free(): invalid next size (fast): 
0x0000000002104630 ***'

Hmm. Pascal de Bruijn reported a very similar problem in April on Ubuntu 
16.04.1.

Alexis Daciuk also reported a very similar looking bug on Linux
kernel 4.6.4-1 and lts 4.4.15-2 quite recently.

I note that Ubuntu 16.04.1 is based on a lts 4.4. kernel.

Attempts to track it down with Alexis failed to identify
the problem :- running dispread under valgrind revealed no issues,
and in fact it ran to completion. This may mean there is a very
subtle bug in the ArgyllCMS xdg_bds.c that valgrind doesn't notice,
or it may mean that there is a bug in the Ubuntu 16.04.1 libc malloc
implementation.

Can you run your test case under valgrind and see what happens ?

Graeme Gill.


Thank you for the tip.
Indeed the calibration ran all the way through and the correction was applied, 
when I used
valgrind unity-control-center
(The calibration procedure is called from within the Ubuntu control panel and I 
haven't found a
way to invoke it on its own)

FWIW, after that I tried
valgrind --leak-check=full unity-control-center
and could reproduce the crash.

Snippet from the second try:
'Setting up the instrument'
'*** Error in `/usr/bin/dispread': free(): invalid next size (fast): 
0x0000000000b03870 ***'
'======= Backtrace: ========='
'/lib/x86_64-linux-gnu/libc.so.6(+0x77725)[0x7fb436f96725]'
'/lib/x86_64-linux-gnu/libc.so.6(+0x7ff4a)[0x7fb436f9ef4a]'
'/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fb436fa2abc]'
'/usr/bin/dispread[0x5091cc]'
'/usr/bin/dispread[0x420e61]'
'/usr/bin/dispread[0x42216b]'
'/usr/bin/dispread[0x438abc]'
'/usr/bin/dispread[0x40f34b]'
'/usr/bin/dispread[0x408d73]'
'/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fb436f3f830]'
'/usr/bin/dispread[0x4093b9]'


I have attached the dumps from both sessions and cc'd you because I guess the 
attachments will
be stripped for the mailing list. The dump with the --leak-check=full option 
enabled is about
2.6MB, so I zipped it.

Best regards, Uwe

A little followup, trying to calibrate my external screen (Dell U2410 connected through HDMI) resulted in the familiar crash, regardless of invoking the calibration with valgrind or without it.


Other related posts: