Package: graphviz
Version: 2.2.1-1
Severity: important

Not sure whether it is connected to 305375, but I don't know how to work 
arround the segfault, it's very anoying and I can't work with it.
obviously there is memory mishandling somewhere.
valgrind can locate the illegal segment read in the code, it should be easy to 
find and fix with debug info built in.
I attach the dot file, verbose dot output and valgrind output.
The bug is reproducable via command line:
dot -Tps -ocompressor.ps compressor.dot 

(I tried different formats, but it breaks no matter which).

thanks!

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.11-1-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages graphviz depends on:
hi  libc6                     2.3.2.ds1-22   GNU C Library: Shared libraries an
ii  libexpat1                 1.95.8-3       XML parsing C library - runtime li
ii  libfontconfig1            2.3.2-1        generic font configuration library
ii  libfreetype6              2.1.10-1       FreeType 2 font engine, shared lib
ii  libice6                   6.8.2.dfsg.1-4 Inter-Client Exchange library
ii  libjpeg62                 6b-10          The Independent JPEG Group's JPEG 
ii  libpng12-0                1.2.8rel-1     PNG library - runtime
ii  libsm6                    6.8.2.dfsg.1-4 X Window System Session Management
ii  libx11-6                  6.8.2.dfsg.1-4 X Window System protocol client li
ii  libxaw7                   6.8.2.dfsg.1-4 X Athena widget set library
ii  libxext6                  6.8.2.dfsg.1-4 X Window System miscellaneous exte
ii  libxmu6                   6.8.2.dfsg.1-4 X Window System miscellaneous util
ii  libxpm4                   6.8.2.dfsg.1-4 X pixmap library
ii  libxt6                    6.8.2.dfsg.1-4 X Toolkit Intrinsics
ii  tcl8.4                    8.4.9-1        Tcl (the Tool Command Language) v8
ii  tk8.4                     8.4.9-1        Tk toolkit for Tcl and X11, v8.4 -
ii  xlibs                     6.8.2.dfsg.1-4 X Window System client libraries m
ii  zlib1g                    1:1.2.3-1      compression library - runtime

graphviz recommends no packages.

-- no debconf information
digraph ______iut_compressor_xml {
  model=subset; remincross=true;
  subgraph cluster_ENV {
    node [shape=ellipse,style=filled,fillcolor=lightgray];
    ENV_Action;   ENV_DefrostGen;   ENV_INIT;   ENV_TempGen;   
ENV_TemperatureReporter;   ENV_TemperatureSinus1; 
    node [style="",shape=ellipse,color=blue,peripheries=2];
    ENV_CT; ENV_TADelay; ENV_setPoint; 
    highStop; lowStop; startupDelay; delay; defrostSwitchDelay; highAlarmDev; 
  }
  subgraph cluster_IUT {
    node [shape=ellipse,style=filled,fillcolor=lightgray];
    IUT_ActionHandler;   IUT_AutoDefrost;   IUT_Compressor;   
    IUT_Defrost;   IUT_HighTemperatureAlarm;   IUT_INIT;   
    IUT_TemperatureMeasurementErr;   IUT_TemperatureReceiver;
    IUT_alarmRelay;   IUT_compressorRelay;   IUT_defrostRelay;
    IUT_highAlarmDisplay;
    node [style="",shape=ellipse,color=blue,peripheries=2];
    IUT_CT; IUT_TADelay; IUT_calcTemp; IUT_setPoint; diff; err; 
    compressorSwitchDelay; samplePeriod; defrostPeriod; defrostTime; 
    fixedTemp; defrosting; defrostAlarmDelay; alarmSwitchDelay; on; 
    t_defrostDuration;
  }
  subgraph cluste_vars {
    style=invis;
    node [shape=ellipse,color=blue,peripheries=2];
    t_defrostPeriod;
  }
  startupDelay -> ENV_INIT;
  ENV_INIT -> ENV_TADelay [style=bold];
  ENV_INIT -> ENV_setPoint [style=bold];
  ENV_INIT -> t_defrostPeriod [style=bold];
  ENV_CT -> ENV_TemperatureSinus1;
  delay -> ENV_TemperatureSinus1;
  highStop -> ENV_TemperatureSinus1;
  lowStop -> ENV_TemperatureSinus1;
  ENV_TemperatureSinus1 -> ENV_CT [style=bold];
  ENV_TADelay -> ENV_TempGen;
  ENV_TempGen -> highStop [style=bold];
  ENV_TempGen -> lowStop [style=bold];
  ENV_CT -> IUT_TemperatureReceiver;
  IUT_TemperatureReceiver -> IUT_CT [style=bold];
  IUT_CT -> IUT_TemperatureMeasurementErr;
  IUT_calcTemp -> IUT_TemperatureMeasurementErr;
  fixedTemp -> IUT_TemperatureMeasurementErr;
  samplePeriod -> IUT_TemperatureMeasurementErr;
  IUT_TemperatureMeasurementErr -> IUT_calcTemp [style=bold];
  IUT_calcTemp -> IUT_Compressor;
  IUT_setPoint -> IUT_Compressor;
  defrosting -> IUT_Compressor;
  diff -> IUT_Compressor;
  err -> IUT_Compressor;
  on -> IUT_Compressor;
  IUT_Compressor -> on [style=bold];
  compressorSwitchDelay -> IUT_compressorRelay;
  alarmSwitchDelay -> IUT_alarmRelay;
  ENV_setPoint -> IUT_ActionHandler;
  IUT_ActionHandler -> IUT_setPoint [style=bold];
  alarmSwitchDelay -> IUT_highAlarmDisplay;
  IUT_TADelay -> IUT_HighTemperatureAlarm;
  IUT_calcTemp -> IUT_HighTemperatureAlarm;
  IUT_setPoint -> IUT_HighTemperatureAlarm;
  diff -> IUT_HighTemperatureAlarm;
  err -> IUT_HighTemperatureAlarm;
  highAlarmDev -> IUT_HighTemperatureAlarm;
  defrostPeriod -> IUT_AutoDefrost;
  t_defrostPeriod -> IUT_AutoDefrost;
  IUT_AutoDefrost -> t_defrostPeriod [style=bold];
  defrostAlarmDelay -> IUT_Defrost;
  defrostTime -> IUT_Defrost;
  t_defrostDuration -> IUT_Defrost;
  IUT_Defrost -> defrosting [style=bold];
  IUT_Defrost -> on [style=bold];
  IUT_Defrost -> t_defrostDuration [style=bold];
  defrostSwitchDelay -> IUT_defrostRelay;
  ENV_TADelay -> IUT_INIT;
  ENV_setPoint -> IUT_INIT;
  fixedTemp -> IUT_INIT;
  IUT_INIT -> IUT_TADelay [style=bold];
  IUT_INIT -> IUT_calcTemp [style=bold];
  IUT_INIT -> IUT_setPoint [style=bold];
  ENV_INIT -> IUT_INIT [label="EKCReset"];
  ENV_INIT -> IUT_ActionHandler [label="setAlarmDelay"];
  ENV_INIT -> IUT_INIT [label="setAlarmDelay"];
  ENV_INIT -> IUT_ActionHandler [label="setEKCPars"];
  ENV_INIT -> IUT_ActionHandler [label="setPoint"];
  ENV_INIT -> IUT_INIT [label="setPoint"];
  ENV_TemperatureSinus1 -> ENV_TempGen [label="highDone"];
  NO_DEST [style=filled,fillcolor=red];
  ENV_TemperatureSinus1 -> NO_DEST [label="lowDone"];
  ENV_TemperatureSinus1 -> ENV_TemperatureReporter [label="reportTemp"];
  ENV_TemperatureReporter -> IUT_TemperatureReceiver [label="CT"];
  ENV_TemperatureReporter -> ENV_TemperatureSinus1 [label="reportDone"];
  ENV_TempGen -> ENV_TemperatureSinus1 [label="_continue"];
  ENV_TempGen -> IUT_ActionHandler [label="alarmReset"];
  ENV_DefrostGen -> IUT_Defrost [label="manualDefrostOff"];
  ENV_DefrostGen -> IUT_Defrost [label="manualDefrostOn"];
  IUT_TemperatureReceiver -> IUT_TemperatureMeasurementErr 
[label="receivedTemp"];
  IUT_TemperatureMeasurementErr -> IUT_Compressor [label="newTemp"];
  IUT_TemperatureMeasurementErr -> IUT_HighTemperatureAlarm [label="newTemp"];
  IUT_Compressor -> IUT_compressorRelay [label="COff"];
  IUT_Compressor -> IUT_compressorRelay [label="COn"];
  IUT_compressorRelay -> ENV_Action [label="compressorRelayOff"];
  IUT_compressorRelay -> ENV_Action [label="compressorRelayOn"];
  IUT_alarmRelay -> ENV_INIT [label="alarmRelayOff"];
  IUT_alarmRelay -> ENV_Action [label="alarmRelayOff"];
  IUT_alarmRelay -> ENV_Action [label="alarmRelayOn"];
  IUT_ActionHandler -> IUT_HighTemperatureAlarm [label="clearHighAlarm"];
  IUT_ActionHandler -> ENV_Action [label="compressorRelayOff"];
  IUT_ActionHandler -> ENV_Action [label="compressorRelayOn"];
  IUT_ActionHandler -> ENV_Action [label="highAlarmDisplayOff"];
  IUT_ActionHandler -> ENV_Action [label="highAlarmDisplayOn"];
  IUT_highAlarmDisplay -> ENV_Action [label="highAlarmDisplayOff"];
  IUT_highAlarmDisplay -> ENV_Action [label="highAlarmDisplayOn"];
  IUT_HighTemperatureAlarm -> IUT_alarmRelay [label="AOff"];
  IUT_HighTemperatureAlarm -> IUT_alarmRelay [label="AOn"];
  IUT_HighTemperatureAlarm -> IUT_highAlarmDisplay [label="HADOff"];
  IUT_HighTemperatureAlarm -> IUT_highAlarmDisplay [label="HADOn"];
  IUT_AutoDefrost -> IUT_Defrost [label="autoDefrostOn"];
  IUT_Defrost -> IUT_compressorRelay [label="COff"];
  IUT_Defrost -> IUT_defrostRelay [label="DOff"];
  IUT_Defrost -> IUT_defrostRelay [label="DOn"];
  IUT_Defrost -> IUT_HighTemperatureAlarm [label="noDefrostDelay"];
  IUT_defrostRelay -> ENV_Action [label="defrostRelayOff"];
  IUT_defrostRelay -> ENV_Action [label="defrostRelayOn"];
  IUT_INIT -> ENV_INIT [label="alarmRelayOff"];
  IUT_INIT -> ENV_Action [label="alarmRelayOff"];
  IUT_INIT -> IUT_TemperatureMeasurementErr [label="initDone"];
  IUT_INIT -> IUT_Compressor [label="initDone"];
  IUT_INIT -> IUT_compressorRelay [label="initDone"];
  IUT_INIT -> IUT_alarmRelay [label="initDone"];
  IUT_INIT -> IUT_ActionHandler [label="initDone"];
  IUT_INIT -> IUT_highAlarmDisplay [label="initDone"];
  IUT_INIT -> IUT_HighTemperatureAlarm [label="initDone"];
  IUT_INIT -> IUT_AutoDefrost [label="initDone"];
  IUT_INIT -> IUT_Defrost [label="initDone"];
  IUT_INIT -> IUT_defrostRelay [label="initDone"];
  IUT_INIT -> ENV_INIT [label="initDone"];
  IUT_INIT -> ENV_Action [label="initDone"];
  IUT_INIT -> ENV_TempGen [label="initDone"];
  IUT_INIT -> ENV_DefrostGen [label="initDone"];
}
dot: fontname=Times-Roman fontpath=/usr/X11R6/lib/X11/fonts/Type1/n021003l.pfm
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex: 11 nodes 12 edges 0 iter 0.00 sec
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex: 28 nodes 51 edges 2 iter 0.00 sec
network simplex: 43 nodes 78 edges 18 iter 0.00 sec
mincross: pass 0 iter 0 trying 0 cur_cross 13112 best_cross 13112
mincross: pass 0 iter 1 trying 1 cur_cross 1014043 best_cross 13112
mincross: pass 0 iter 2 trying 2 cur_cross 1011073 best_cross 13112
mincross: pass 0 iter 3 trying 3 cur_cross 1010048 best_cross 13112
mincross: pass 1 iter 0 trying 0 cur_cross 16164 best_cross 13112
mincross: pass 1 iter 1 trying 1 cur_cross 1020025 best_cross 13112
mincross: pass 1 iter 2 trying 0 cur_cross 10088 best_cross 10088
mincross: pass 1 iter 3 trying 0 cur_cross 5058 best_cross 5058
mincross: pass 2 iter 0 trying 0 cur_cross 5058 best_cross 5058
mincross: pass 2 iter 1 trying 1 cur_cross 1017020 best_cross 5058
mincross: pass 2 iter 2 trying 2 cur_cross 1009043 best_cross 5058
mincross: pass 2 iter 3 trying 3 cur_cross 1008041 best_cross 5058
mincross: pass 2 iter 4 trying 4 cur_cross 1008041 best_cross 5058
mincross: pass 2 iter 5 trying 5 cur_cross 1017040 best_cross 5058
mincross: pass 2 iter 6 trying 6 cur_cross 1016024 best_cross 5058
mincross: pass 2 iter 7 trying 7 cur_cross 1014015 best_cross 5058
mincross: pass 2 iter 8 trying 8 cur_cross 1014015 best_cross 5058
merge2: graph ______iut_compressor_xml, rank 0 has only 1 < 2 nodes
merge2: graph ______iut_compressor_xml, rank 1 has only 3 < 6 nodes
merge2: graph ______iut_compressor_xml, rank 2 has only 3 < 8 nodes
merge2: graph ______iut_compressor_xml, rank 3 has only 14 < 31 nodes
merge2: graph ______iut_compressor_xml, rank 4 has only 12 < 30 nodes
merge2: graph ______iut_compressor_xml, rank 5 has only 31 < 49 nodes
merge2: graph ______iut_compressor_xml, rank 6 has only 20 < 34 nodes
merge2: graph ______iut_compressor_xml, rank 7 has only 20 < 46 nodes
merge2: graph ______iut_compressor_xml, rank 8 has only 13 < 29 nodes
merge2: graph ______iut_compressor_xml, rank 9 has only 13 < 30 nodes
merge2: graph ______iut_compressor_xml, rank 10 has only 6 < 12 nodes
merge2: graph ______iut_compressor_xml, rank 11 has only 6 < 16 nodes
merge2: graph ______iut_compressor_xml, rank 12 has only 4 < 9 nodes
merge2: graph ______iut_compressor_xml, rank 13 has only 3 < 7 nodes
merge2: graph ______iut_compressor_xml, rank 15 has only 4 < 7 nodes
merge2: graph ______iut_compressor_xml, rank 16 has only 2 < 3 nodes
mincross: pass 2 iter 0 trying 0 cur_cross 5094 best_cross 5094
mincross: pass 2 iter 1 trying 1 cur_cross 5080 best_cross 5080
mincross: pass 2 iter 2 trying 2 cur_cross 5076 best_cross 5076
mincross: pass 2 iter 3 trying 3 cur_cross 5076 best_cross 5076
mincross: pass 2 iter 4 trying 4 cur_cross 5076 best_cross 5076
mincross: pass 2 iter 5 trying 5 cur_cross 5076 best_cross 5076
mincross: pass 2 iter 6 trying 6 cur_cross 5076 best_cross 5076
mincross: pass 2 iter 7 trying 7 cur_cross 5076 best_cross 5076
mincross: pass 2 iter 8 trying 8 cur_cross 5076 best_cross 5076
mincross: pass 2 iter 0 trying 0 cur_cross 668 best_cross 668
mincross: pass 2 iter 1 trying 0 cur_cross 489 best_cross 489
mincross: pass 2 iter 2 trying 0 cur_cross 394 best_cross 394
mincross: pass 2 iter 3 trying 0 cur_cross 363 best_cross 363
mincross: pass 2 iter 4 trying 0 cur_cross 358 best_cross 358
mincross: pass 2 iter 5 trying 1 cur_cross 436 best_cross 358
mincross: pass 2 iter 6 trying 2 cur_cross 437 best_cross 358
mincross: pass 2 iter 7 trying 3 cur_cross 405 best_cross 358
mincross: pass 2 iter 8 trying 4 cur_cross 406 best_cross 358
mincross: pass 2 iter 9 trying 5 cur_cross 422 best_cross 358
mincross: pass 2 iter 10 trying 6 cur_cross 396 best_cross 358
mincross: pass 2 iter 11 trying 7 cur_cross 365 best_cross 358
mincross: pass 2 iter 12 trying 0 cur_cross 348 best_cross 348
mincross: pass 2 iter 13 trying 1 cur_cross 397 best_cross 348
mincross: pass 2 iter 14 trying 2 cur_cross 414 best_cross 348
mincross: pass 2 iter 15 trying 3 cur_cross 355 best_cross 348
mincross: pass 2 iter 16 trying 0 cur_cross 338 best_cross 338
mincross: pass 2 iter 17 trying 1 cur_cross 377 best_cross 338
mincross: pass 2 iter 18 trying 2 cur_cross 393 best_cross 338
mincross: pass 2 iter 19 trying 3 cur_cross 343 best_cross 338
mincross: pass 2 iter 20 trying 0 cur_cross 335 best_cross 335
mincross: pass 2 iter 21 trying 1 cur_cross 399 best_cross 335
mincross: pass 2 iter 22 trying 2 cur_cross 389 best_cross 335
mincross: pass 2 iter 23 trying 0 cur_cross 326 best_cross 326
mincross: pass 2 iter 0 trying 0 cur_cross 312 best_cross 312
mincross: pass 2 iter 1 trying 1 cur_cross 314 best_cross 312
mincross: pass 2 iter 2 trying 2 cur_cross 323 best_cross 312
mincross: pass 2 iter 3 trying 3 cur_cross 319 best_cross 312
mincross: pass 2 iter 4 trying 4 cur_cross 313 best_cross 312
mincross: pass 2 iter 5 trying 5 cur_cross 313 best_cross 312
mincross: pass 2 iter 6 trying 6 cur_cross 316 best_cross 312
mincross: pass 2 iter 7 trying 7 cur_cross 318 best_cross 312
mincross: pass 2 iter 8 trying 8 cur_cross 313 best_cross 312
mincross ______iut_compressor_xml: 311 crossings, 0.02 secs.
network simplex: 100 200 300 
network simplex: 700 nodes 1133 edges 311 iter 0.05 sec
==9257== Memcheck, a memory error detector for x86-linux.
==9257== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==9257== Using valgrind-2.4.1, a program supervision framework for x86-linux.
==9257== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==9257== For more details, rerun with: -v
==9257== 
==9257== Invalid read of size 4
==9257==    at 0x1BAFAFD5: (within /usr/lib/graphviz/libdotgen.so.0.0.0)
==9257==    by 0x1BAFA775: dot_splines (in /usr/lib/graphviz/libdotgen.so.0.0.0)
==9257==    by 0x1BAF2129: dot_layout (in /usr/lib/graphviz/libdotgen.so.0.0.0)
==9257==    by 0x8048929: (within /usr/bin/dot)
==9257==    by 0x1BB6096F: __libc_start_main (in 
/lib/tls/i686/cmov/libc-2.3.2.so)
==9257==    by 0x8048790: (within /usr/bin/dot)
==9257==  Address 0x94 is not stack'd, malloc'd or (recently) free'd
==9257== 
==9257== Process terminating with default action of signal 11 (SIGSEGV)
==9257==  Access not within mapped region at address 0x94
==9257==    at 0x1BAFAFD5: (within /usr/lib/graphviz/libdotgen.so.0.0.0)
==9257==    by 0x1BAFA775: dot_splines (in /usr/lib/graphviz/libdotgen.so.0.0.0)
==9257==    by 0x1BAF2129: dot_layout (in /usr/lib/graphviz/libdotgen.so.0.0.0)
==9257==    by 0x8048929: (within /usr/bin/dot)
==9257==    by 0x1BB6096F: __libc_start_main (in 
/lib/tls/i686/cmov/libc-2.3.2.so)
==9257==    by 0x8048790: (within /usr/bin/dot)
==9257== 
==9257== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 49 from 1)
==9257== malloc/free: in use at exit: 929858 bytes in 10665 blocks.
==9257== malloc/free: 334463 allocs, 323798 frees, 60880528 bytes allocated.
==9257== For counts of detected errors, rerun with: -v
==9257== searching for pointers to 10665 not-freed blocks.
==9257== checked 1368352 bytes.
==9257== 
==9257== LEAK SUMMARY:
==9257==    definitely lost: 45802 bytes in 529 blocks.
==9257==      possibly lost: 0 bytes in 0 blocks.
==9257==    still reachable: 884056 bytes in 10136 blocks.
==9257==         suppressed: 0 bytes in 0 blocks.
==9257== Use --leak-check=full to see details of leaked memory.

Reply via email to