[Kde-perl] OT: Problems when dealing with perl threads....

Gary Greene greeneg at phoenuxos.com
Sat Dec 17 03:48:23 CET 2005


Not precisely a perlqt issue, but perl related. I'm trying to move the 
system( rpm ) calls into threads and am having trouble getting it to not 
SigSegv. The code is attached and the output from the terminal is also 
attached.

-- 
Gary L. Greene, Jr.
Sent from uriel
  9:42pm  up 1 day  0:04,  7 users,  load average: 0.07, 0.02, 0.00
 
============================================================
Developer and Project Lead for PhoeNUX OS.
 check out http://www.phoenuxos.com/ for more info.
EMAIL : greeneg at phoenuxos.com
============================================================
 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-perl/attachments/20051217/6ed1b14a/attachment.pgp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: packageInstTester.pl
Type: application/x-perl
Size: 6273 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-perl/attachments/20051217/6ed1b14a/packageInstTester.pl
-------------- next part --------------
uriel:/home/greeneg/Documents/src/phinos # ./packageInstTester.pl
Calling method  QApplication* QApplication::QApplication(int&, char**)
with arguments ('1', ARRAY(0x8171390))
Calling method  QDialog* QDialog::QDialog(QWidget*, const char*, bool, Qt::WFlags)
with arguments (undef, undef, undef, undef)
Calling method  const char* QObject::name() const
with arguments ()
Calling method  void QWidget::setName(const char*)
with arguments ('installPro...')
Calling method  QSizePolicy QWidget::sizePolicy() const
with arguments ()
Calling method  bool QSizePolicy::hasHeightForWidth() const
with arguments ()
Calling method  QSizePolicy* QSizePolicy::QSizePolicy(QSizePolicy::SizeType, QSizePolicy::SizeType, uchar, uchar, bool)
with arguments ('7', '7', '100', '100', '')
Calling method  void QWidget::setSizePolicy(QSizePolicy)
with arguments (QSizePolicy)
Calling method  QSize* QSize::QSize(int, int)
with arguments ('600', '460')
Calling method  void QWidget::setMinimumSize(const QSize&)
with arguments (QSize)
Calling method  void QDialog::setSizeGripEnabled(bool)
with arguments ('0')
Calling method  QGroupBox* QGroupBox::QGroupBox(QWidget*, const char*)
with arguments (QDialog, 'progressGr...')
Calling method  QRect* QRect::QRect(int, int, int, int)
with arguments ('10', '0', '580', '470')
Calling method  void QWidget::setGeometry(const QRect&)
with arguments (QRect)
Calling method  QWidget* QWidget::QWidget(QWidget*, const char*)
with arguments (QGroupBox, '$LayoutWid...')
Calling method  QRect* QRect::QRect(int, int, int, int)
with arguments ('10', '20', '561', '440')
Calling method  void QWidget::setGeometry(const QRect&)
with arguments (QRect)
Calling method  QVBoxLayout* QVBoxLayout::QVBoxLayout(QWidget*, int, int, const char*)
with arguments (QWidget, '10', '5', '$layout3')
Calling method  QTextBrowser* QTextBrowser::QTextBrowser(QWidget*, const char*)
with arguments (QWidget, 'isntProgrs...')
Calling method  QCursor* QCursor::QCursor(int)
with arguments ('4')
Calling method  void QWidget::setCursor(const QCursor&)
with arguments (QCursor)
Calling method  static QFrame::Shape QFrame::Box()
with arguments ()
Calling method  void QFrame::setFrameShape(QFrame::Shape)
with arguments ('1')
Calling method  static QFrame::Shadow QFrame::Sunken()
with arguments ()
Calling method  void QFrame::setFrameShadow(QFrame::Shadow)
with arguments ('48')
Calling method  void QScrollView::setDragAutoScroll(bool)
with arguments ('1')
Calling method  static Qt::TextFormat Qt::RichText()
with arguments ()
Calling method  void QTextEdit::setTextFormat(Qt::TextFormat)
with arguments ('1')
Calling method  void QTextEdit::setLinkUnderline(bool)
with arguments ('0')
Calling method  static QTextEdit::WordWrap QTextEdit::NoWrap()
with arguments ()
Calling method  void QTextEdit::setWordWrap(QTextEdit::WordWrap)
with arguments ('0')
Calling method  static QTextEdit::WrapPolicy QTextEdit::AtWordBoundary()
with arguments ()
Calling method  void QTextEdit::setWrapPolicy(QTextEdit::WrapPolicy)
with arguments ('0')
Calling method  void QBoxLayout::addWidget(QWidget*)
with arguments (QTextBrowser)
Calling method  QVBoxLayout* QVBoxLayout::QVBoxLayout(QWidget*, int, int, const char*)
with arguments (undef, '0', '5', '$layout1')
Calling method  QLabel* QLabel::QLabel(QWidget*, const char*)
with arguments (QWidget, 'currentPac...')
Calling method  void QBoxLayout::addWidget(QWidget*)
with arguments (QLabel)
Calling method  QProgressBar* QProgressBar::QProgressBar(QWidget*, const char*)
with arguments (QWidget, 'cPackagesP...')
Calling method  void QBoxLayout::addWidget(QWidget*)
with arguments (QProgressBar)
Calling method  QLabel* QLabel::QLabel(QWidget*, const char*)
with arguments (QWidget, 'totalProgr...')
Calling method  void QBoxLayout::addWidget(QWidget*)
with arguments (QLabel)
Calling method  QProgressBar* QProgressBar::QProgressBar(QWidget*, const char*)
with arguments (QWidget, 'tPackagesR...')
Calling method  void QBoxLayout::addWidget(QWidget*)
with arguments (QProgressBar)
Calling method  void QBoxLayout::addLayout(QLayout*)
with arguments (QVBoxLayout)
Calling method  QHBoxLayout* QHBoxLayout::QHBoxLayout(QWidget*, int, int, const char*)
with arguments (undef, '0', '5', '$layout2')
Lookup for QSizePolicy::Expanding(undef, undef, undef, undef)
did not yeld any result.
Might be a call for an enumerated value (enum).
Trying QSizePolicy::Expanding() with no arguments
at ./packageInstTester.pl line 84.
Calling method  static QSizePolicy::SizeType QSizePolicy::Expanding()
with arguments (undef, undef, undef, undef)
Lookup for QSizePolicy::Minimum(undef, undef, undef, undef)
did not yeld any result.
Might be a call for an enumerated value (enum).
Trying QSizePolicy::Minimum() with no arguments
at ./packageInstTester.pl line 84.
Calling method  static QSizePolicy::SizeType QSizePolicy::Minimum()
with arguments (undef, undef, undef, undef)
Calling method  QSpacerItem* QSpacerItem::QSpacerItem(int, int, QSizePolicy::SizeType, QSizePolicy::SizeType)
with arguments ('430', '20', '7', '1')
Calling method  void QBoxLayout::addItem(QLayoutItem*)
with arguments (QSpacerItem)
Calling method  QPushButton* QPushButton::QPushButton(QWidget*, const char*)
with arguments (QWidget, 'exitInstal...')
Calling method  static QMetaObject* QDialog::staticMetaObject()
with arguments ()
Calling method  void QBoxLayout::addWidget(QWidget*)
with arguments (QPushButton)
Calling method  void QBoxLayout::addLayout(QLayout*)
with arguments (QHBoxLayout)
Calling method  static QString QDialog::trUtf8(const char*)
with arguments ('Installati...')
Calling method  void QWidget::setCaption(const QString&)
with arguments ('Installati...')
Calling method  static QString QDialog::trUtf8(const char*)
with arguments ('Installati...')
Calling method  void QGroupBox::setTitle(const QString&)
with arguments ('Installati...')
Calling method  static QString QDialog::trUtf8(const char*)
with arguments ('Current Pa...')
Calling method  void QLabel::setText(const QString&)
with arguments ('Current Pa...')
Calling method  static QString QDialog::trUtf8(const char*)
with arguments ('Total Prog...')
Calling method  void QLabel::setText(const QString&)
with arguments ('Total Prog...')
Calling method  static QString QDialog::trUtf8(const char*)
with arguments ('&Cancel In...')
Calling method  void QButton::setText(const QString&)
with arguments ('&Cancel In...')
Calling method  static QString QDialog::trUtf8(const char*)
with arguments ('Alt+C')
Calling method  QKeySequence* QKeySequence::QKeySequence(const QString&)
with arguments ('Alt+C')
Calling method  void QButton::setAccel(const QKeySequence&)
with arguments (QKeySequence)
Calling method  QSize* QSize::QSize(int, int)
with arguments ('600', '480')
Calling method  QSize QDialog::minimumSizeHint() const
with arguments ()
Calling method  QSize QSize::expandedTo(const QSize&) const
with arguments (QSize)
Calling method  void QDialog::resize(const QSize&)
with arguments (QSize)
Lookup for Qt::WState_Polished(undef, undef, undef, undef)
did not yeld any result.
Might be a call for an enumerated value (enum).
Trying Qt::WState_Polished() with no arguments
at ./packageInstTester.pl line 94.
Calling method  static Qt::WidgetState Qt::WState_Polished()
with arguments (undef, undef, undef, undef)
Calling method  void QWidget::clearWState(uint)
with arguments ('8192')
Calling method  QWidget* QLayoutItem::widget()
with arguments ()
Calling method  QLayout* QLayoutItem::layout()
with arguments ()
Calling method  QWidget* QLayout::mainWidget()
with arguments ()
Calling method  QWidget* QLayout::mainWidget()
with arguments ()
Calling method  QWidget* QLayout::mainWidget()
with arguments ()
Calling method  QObject* QObject::parent() const
with arguments ()
Calling method  void QApplication::setMainWidget(QWidget*)
with arguments (QDialog)
Calling method  void QDialog::show()
with arguments ()
Calling method  void QApplication::processEvents()
with arguments ()
  = Create RPM base directories....
Calling method  void QTextEdit::append(const QString&)
with arguments ('Create RPM...')
Calling method  void QApplication::processEvents()
with arguments ()
  = Create RPM Berkley v4 DB....
Calling method  void QTextEdit::append(const QString&)
with arguments ('Create RPM...')
Calling method  void QApplication::processEvents()
with arguments ()
  = Preparing base operating system.
Calling method  void QTextEdit::append(const QString&)
with arguments ('Preparing ...')
Calling method  void QApplication::processEvents()
with arguments ()
  = Pre-installing: setup-2.6-1pnx.i586.rpm binaries
Calling method  void QTextEdit::append(const QString&)
with arguments ('Pre-instal...')
Calling method  void QApplication::processEvents()
with arguments ()
Outside thread.
INSIDE THREAD.
PACKAGE ( setup-2.6-1pnx.i586.rpm ) Installed.
Attempt to free non-existent shared string '144382568', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144382608', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144985808', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144985848', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144606496', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144606536', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144975736', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144975776', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '143581608', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '143581648', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '143573616', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '143573656', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '143672760', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '143672800', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '143675400', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '143675440', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144953856', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144953896', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144086272', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144086312', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144388480', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '143678288', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '143678328', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144454528', Perl interpreter: 0x8ae4548 during global destruction.
Attempt to free non-existent shared string '144454568', Perl interpreter: 0x8ae4548 during global destruction.
Segmentation fault


More information about the Kde-perl mailing list