From owner-freebsd-current@FreeBSD.ORG Wed Dec 23 15:59:46 2009 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 315F01065670 for ; Wed, 23 Dec 2009 15:59:46 +0000 (UTC) (envelope-from koole@ricardis.tudelft.nl) Received: from smtpq1.tb.mail.iss.as9143.net (smtpq1.tb.mail.iss.as9143.net [212.54.42.164]) by mx1.freebsd.org (Postfix) with ESMTP id BD59A8FC15 for ; Wed, 23 Dec 2009 15:59:45 +0000 (UTC) Received: from [212.54.42.146] (helo=smtp15.tb.mail.iss.as9143.net) by smtpq1.tb.mail.iss.as9143.net with esmtp (Exim 4.69) (envelope-from ) id 1NNTMx-0008QS-T0 for freebsd-current@freebsd.org; Wed, 23 Dec 2009 16:43:23 +0100 Received: from 5354ab0a.cable.casema.nl ([83.84.171.10] helo=rick.kooleconsulting.nl) by smtp15.tb.mail.iss.as9143.net with esmtp (Exim 4.69) (envelope-from ) id 1NNTMi-0007jt-9F for freebsd-current@freebsd.org; Wed, 23 Dec 2009 16:43:08 +0100 From: RK To: freebsd-current@freebsd.org Date: Wed, 23 Dec 2009 16:42:31 +0100 User-Agent: KMail/1.12.1 (FreeBSD/9.0-CURRENT; KDE/4.3.1; amd64; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200912231642.31443.koole@ricardis.tudelft.nl> X-ZiggoSMTP-MailScanner-Information: Please contact the ISP for more information X-ZiggoSMTP-MailScanner-ID: 1NNTMi-0007jt-9F X-ZiggoSMTP-MailScanner: Found to be clean X-ZiggoSMTP-MailScanner-SpamCheck: geen spam, SpamAssassin (niet cached, score=-1.908, vereist 5, autolearn=not spam, ALL_TRUSTED -1.80, BAYES_40 -0.18, TW_EG 0.08) X-ZiggoSMTP-MailScanner-From: koole@ricardis.tudelft.nl X-Spam-Status: No Subject: libthr sigsegv X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Dec 2009 15:59:46 -0000 Hi, I was trying out Qt4.5.3 with the qt-ruby bindings. Once Qt's event loop is started, it's no longer possible to execute another thread from within ruby without segfaulting on a problem in libthr. Can anybody point out how to proceed debugging this? Used source and gdb backtrace are down below. -- RK FreeBSD-current (22-12-09) Qt 4.5.3 from ports (22-12-09) kdebindings-trunk (22-12-09) > gdb ruby19 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... (gdb) run test.rb Starting program: /usr/local/bin/ruby19 test.rb [New LWP 100172] [New Thread 8010041c0 (LWP 100172)] [New Thread 80100ae40 (LWP 100175)] [Thread 80100ae40 (LWP 100175) exited] [New Thread 80753e200 (LWP 100175) Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 80753e200 (LWP 100175)] 0x0000000800505dc5 in _rtld_error () from /libexec/ld-elf.so.1 (gdb) bt #0 0x0000000800505dc5 in _rtld_error () from /libexec/ld-elf.so.1 #1 0x000000080050658b in dladdr () from /libexec/ld-elf.so.1 #2 0x0000000800506663 in dladdr () from /libexec/ld-elf.so.1 #3 0x00000008005037dd in ?? () from /libexec/ld-elf.so.1 #4 0x0000000800544c00 in ?? () #5 0x0000000000000000 in ?? () #6 0x00000008012399c0 in ?? () #7 0x00007fffffbfc710 in ?? () #8 0x0000000000000006 in ?? () #9 0x0000000801934ce2 in typeinfo name for QEvent () from /usr/local/lib/qt4/libQtCore.so.4 #10 0x0000000000000000 in ?? () #11 0x0000000000000001 in ?? () #12 0x0000000000000004 in ?? () #13 0x0000000000000206 in ?? () #14 0x0000000000000000 in ?? () #15 0x0000000800537400 in ?? () #16 0x0000000000000090 in ?? () #17 0x000000080187d011 in qt_native_write () from /usr/local/lib/qt4/libQtCore.so.4 #18 0x000000080187d0aa in qt_sa_sigchld_handler () from /usr/local/lib/qt4/libQtCore.so.4 #19 #20 0x00000008008ff40c in __error () from /lib/libthr.so.3 #21 0x00000008008fd505 in pthread_cond_signal () from /lib/libthr.so.3 #22 0x0000000800765b33 in thread_timer (dummy=Variable "dummy" is not available. ) at thread_pthread.c:122 #23 0x00000008008f55b1 in pthread_getprio () from /lib/libthr.so.3 #24 0x0000000000000000 in ?? () #25 0x0000000000000000 in ?? () #26 0x0000000000000000 in ?? () #27 0x0000000000000000 in ?? () #28 0x0000000000000000 in ?? () #29 0x0000000000000000 in ?? () #30 0x0000000000000000 in ?? () --------- test.rb require 'Qt4' puts `date` module MyQt class MainWindow < Qt::MainWindow slots 'slotTest()' def conf(app) @actionQuit = Qt::Action.new(self) @actionQuit.setText("quit") @actionQuit.setShortcut("Ctrl+q") @actionTest = Qt::Action.new(self) @actionTest.setText("test") @actionTest.setShortcut("Ctrl+t") @menubar = Qt::MenuBar.new(self) ; @menubar.setObjectName("menubar") @menubar.setGeometry(Qt::Rect.new(0,0,400,28)) setMenuBar(@menuBar) @menuProgram = Qt::Menu.new(@menubar) @menuProgram.setTitle("Program") @menubar.addAction(@menuProgram.menuAction()) @menuProgram.addAction(@actionTest) @menuProgram.addAction(@actionQuit) Qt::MetaObject.connectSlotsByName(self) Qt::Object.connect(@actionTest, SIGNAL('activated()'), self, SLOT('slotTest()')) Qt::Object.connect(@actionQuit, SIGNAL('activated()'), app, SLOT('quit()')) end def slotTest puts `date` #puts "testing" STDOUT.flush end end end app = Qt::Application.new(0,[]) mainWindow = MyQt::MainWindow.new() mainWindow.conf(app) mainWindow.show app.exec ----------