Bug#591648: [workaround] doxygen segfaults on kfreebsd-*, hppa

2010-08-20 Thread Mathieu Malaterre
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

2010-08-20 Thread Petr Salinger

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

2010-08-20 Thread Petr Salinger

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

2010-08-17 Thread Petr Salinger

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