Bug#591648: [workaround] doxygen segfaults on kfreebsd-*, hppa
On Fri, Aug 20, 2010 at 10:33 AM, Petr Salinger petr.salin...@seznam.cz wrote: hppa-porters, please take a look whether similar workaround works also for your pet architecture. So far at least clp, soprano, schroot are affected. Dear doxygen maintainer, please apply the workaround bellow, until the real cause is found. It looks like it affects also other platforms, only likelihood is a different. gdcm failed on armel, hppa, kfreebsd-amd64, powerpc, s390. Therefore I suggest: --- qtools/qthread_unix.cpp +++ qtools/qthread_unix.cpp @@ -179,6 +179,9 @@ int QThread::idealThreadCount() { int cores = -1; +#if 1 + return -1; +#endif #if defined(_OS_MAC_) // Mac OS X cores = MPProcessorsScheduled(); So far no response from doxygen maintainer, any NMUer ? BTW, I am not even sure this would fix the symptoms. I tried a rebuild of gdcm using DOT_NUM_THREADS = 1 in the doxygen configuration (which I would hope would be the old behavior). It did solve the symptoms on most platforms, except hppa: https://buildd.debian.org/fetch.cgi?pkg=gdcmarch=hppaver=2.0.16-2stamp=1282239282file=logas=raw Total: -- (in = 35718) (out = 17406) (deflated 51%) [100%] building vtkgdcm.jar make[3]: Leaving directory `/build/buildd-gdcm_2.0.16-2-hppa-IM6tJt/gdcm-2.0.16/debian/build-python2.6' [100%] Built target VTKGDCMJavaJar make[3]: Entering directory `/build/buildd-gdcm_2.0.16-2-hppa-IM6tJt/gdcm-2.0.16/debian/build-python2.6' Scanning dependencies of target vtkgdcmPython make[3]: Leaving directory `/build/buildd-gdcm_2.0.16-2-hppa-IM6tJt/gdcm-2.0.16/debian/build-python2.6' make[3]: Entering directory `/build/buildd-gdcm_2.0.16-2-hppa-IM6tJt/gdcm-2.0.16/debian/build-python2.6' [100%] Building CXX object Utilities/VTK/CMakeFiles/vtkgdcmPython.dir/vtkgdcmPythonInit.cxx.o Linking CXX shared module ../../bin/libvtkgdcmPython.so Copy vtkgdcm.py into /build/buildd-gdcm_2.0.16-2-hppa-IM6tJt/gdcm-2.0.16/debian/build-python2.6/bin make[3]: Leaving directory `/build/buildd-gdcm_2.0.16-2-hppa-IM6tJt/gdcm-2.0.16/debian/build-python2.6' [100%] Built target vtkgdcmPython make[3]: *** Deleting file `Utilities/doxygen/html/index.html'E: Caught signal 'Terminated': terminating immediately make[3]: *** wait: No child processes. Stop. make[3]: *** Waiting for unfinished jobs make[3]: *** wait: No child processes. Stop. make[2]: *** [Utilities/doxygen/CMakeFiles/GDCMDoxygenDoc.dir/all] Error 2 make[1]: *** [all] Terminated make: *** [debian/build-python2.6-stamp] Terminated Build killed with signal TERM after 150 minutes of inactivity Build finished at 20100819-1725 FAILED [dpkg-buildpackage died] -- Mathieu -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#591648: [workaround] doxygen segfaults on kfreebsd-*, hppa
BTW, I am not even sure this would fix the symptoms. I tried a rebuild of gdcm using DOT_NUM_THREADS = 1 in the doxygen configuration (which I would hope would be the old behavior). Not exactly. It still starts one thread for performing the real work. When I got traces for kfreebsd, it crashes inside thread primitives. There have been value 8 in field where only 1 or 0 are allowed. May be some data structures are incorrectly shared between main and slave threads. Petr -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#591648: [workaround] doxygen segfaults on kfreebsd-*, hppa, armel
tags 591648 +patch -- On penktadienis 20 Rugpj˙˙tis 2010 10:59:55 Mathieu Malaterre wrote: BTW, I am not even sure this would fix the symptoms. I tried a rebuild of gdcm using DOT_NUM_THREADS = 1 in the doxygen configuration (which I would hope would be the old behavior). It did solve the symptoms on most platforms, except hppa: https://buildd.debian.org/fetch.cgi?pkg=gdcmarch=hppaver=2.0.16-2stamp=1 282239282file=logas=raw For the record, hppa problem might be a different one, i.e. that (in)famous threads+fork() bug #561203 [1]. Symptoms are pretty similar: doxygen hung once and segfault'ed next time when building soprano. The behaviour is not the same as previously, but it can be changed by attached patch. Which is IMHO, the right thing to do now. BTW, openvrml just failed in doxygen run on armel. Petr --- a/src/dot.cpp +++ b/src/dot.cpp @@ -734,6 +734,8 @@ // +#define DIRECT_DOT_RUN 1 + DotManager *DotManager::m_theInstance = 0; DotManager *DotManager::instance() @@ -750,6 +752,7 @@ m_dotRuns.setAutoDelete(TRUE); m_dotMaps.setAutoDelete(TRUE); m_queue = new DotRunnerQueue; +#ifndef DIRECT_DOT_RUN int i; int numThreads = QMIN(32,Config_getInt(DOT_NUM_THREADS)); if (numThreads==0) numThreads = QMAX(1,QThread::idealThreadCount()+1); @@ -767,6 +770,7 @@ } } ASSERT(m_workers.count()0); +#endif } DotManager::~DotManager() @@ -834,11 +838,17 @@ portable_sysTimerStart(); // fill work queue with dot operations DotRunner *dr; + int prev=1; for (li.toFirst();(dr=li.current());++li) { +#ifdef DIRECT_DOT_RUN +msg(Running dot for graph %d/%d\n,prev,numDotRuns); +if(!dr-run()) return FALSE; +prev++; + }; +#else m_queue-enqueue(dr); } - int prev=1; // wait for the queue to become empty while ((i=m_queue-count())0) { @@ -865,6 +875,7 @@ { m_workers.at(i)-wait(); } +#endif portable_sysTimerStop(); if (setPath) {
Bug#591648: [workaround] doxygen segfaults on kfreebsd-*, hppa
Hi, I am unable to trace that down, but disabling multiple threads during dot run avoids the segfault. hppa-porters, please take a look whether similar workaround works also for your pet architecture. So far at least clp, soprano, schroot are affected. Dear doxygen maintainer, please apply the workaround bellow, until the real cause is found. Thanks Petr --- qtools/qthread_unix.cpp +++ qtools/qthread_unix.cpp @@ -179,6 +179,9 @@ int QThread::idealThreadCount() { int cores = -1; +#ifdef __FreeBSD_kernel__ +return -1; +#endif #if defined(_OS_MAC_) // Mac OS X cores = MPProcessorsScheduled(); -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org