Hi Frank,

I am using wkhtmltopdf from Odoo and I noticed it crashes when generating
reports. This command crashes :
/usr/local/bin/wkhtmltopdf --header-html /tmp/report.header.tmp.l1ae35ik.html 
/tmp/report.body.tmp.0.s0vmsl3y.html report.pdf

Thread 1 received signal SIGTRAP, Trace/breakpoint trap.
0x00000186bec30acb in cti_op_call_NotJSFunction ()
(gdb) bt
#0  0x00000186bec30acb in cti_op_call_NotJSFunction ()
#1  0x00000186bec2bd98 in ctiTrampoline ()
#2  0x00000186beb51e1b in JSC::Interpreter::executeCall(JSC::ExecState*, 
JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList 
const&) ()
#3  0x00000186beb5b7fb in JSC::call(JSC::ExecState*, JSC::JSValue, 
JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) ()
#4  0x00000186bf33ba68 in 
WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, 
WebCore::Event*) ()
#5  0x00000186bed779ce in 
WebCore::EventTarget::fireEventListeners(WebCore::Event*, 
WebCore::EventTargetData*, WTF::Vector<WebCore::RegisteredEventListener, 1ul>&) 
()
#6  0x00000186bed773b6 in 
WebCore::EventTarget::fireEventListeners(WebCore::Event*) ()
#7  0x00000186bed7372b in 
WebCore::EventDispatcher::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) ()
#8  0x00000186bed725a5 in 
WebCore::EventDispatchMediator::dispatchEvent(WebCore::EventDispatcher*) const 
()
#9  0x00000186bed7268c in 
WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, 
WebCore::EventDispatchMediator const&) ()
#10 0x00000186bef66eb2 in 
WebCore::Node::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) ()
#11 0x00000186bed8fe39 in WebCore::Document::finishedParsing() ()
#12 0x00000186bf514b7f in WebCore::HTMLDocumentParser::prepareToStopParsing() ()
#13 0x00000186bf5160dd in 
WebCore::HTMLDocumentParser::executeScriptsWaitingForStylesheets() ()
#14 0x00000186bed8a539 in WebCore::Document::removePendingSheet() ()
#15 0x00000186bf538692 in WebCore::HTMLLinkElement::sheetLoaded() ()
#16 0x00000186beef5261 in WebCore::CSSStyleSheet::checkLoaded() ()
#17 0x00000186bf53825f in 
WebCore::HTMLLinkElement::setCSSStyleSheet(WTF::String const&, WebCore::KURL 
const&, WTF::String const&, WebCore::CachedCSSStyleSheet const*) ()
#18 0x00000186bf539a01 in WebCore::CachedCSSStyleSheet::checkNotify() ()
#19 0x00000186bf5397da in 
WebCore::CachedCSSStyleSheet::data(WTF::PassRefPtr<WebCore::SharedBuffer>, 
bool) ()
#20 0x00000186bf9eb551 in 
WebCore::CachedResourceRequest::didFinishLoading(WebCore::SubresourceLoader*, 
double) ()
#21 0x00000186bfa9048f in WebCore::SubresourceLoader::didFinishLoading(double) 
()
#22 0x00000186bef8cf00 in WebCore::QNetworkReplyHandler::finish() ()
#23 0x00000186bef8b11f in WebCore::QNetworkReplyHandlerCallQueue::flush() ()
#24 0x00000186bef8da80 in WebCore::QNetworkReplyWrapper::didReceiveFinished() ()
#25 0x00000186c05ad148 in QMetaObject::activate(QObject*, QMetaObject const*, 
int, void**) ()
#26 0x00000186c03db9db in QNetworkReplyImplPrivate::finished() ()
#27 0x00000186c05a8643 in QObject::event(QEvent*) ()
#28 0x00000186bfd4b1b6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) 
()
#29 0x00000186bfd4c8f3 in QApplication::notify(QObject*, QEvent*) ()
#30 0x00000186c0591eb8 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
#31 0x00000186c0592cd6 in QCoreApplicationPrivate::sendPostedEvents(QObject*, 
int, QThreadData*) ()
#32 0x00000186c05bf8f7 in 
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#33 0x00000186c05923e5 in 
QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#34 0x00000186bea9a19f in wkhtmltopdf::Converter::convert() ()
#35 0x00000186beabeb2c in main ()


If I remove the --header-html (or --footer-html), it works :
/usr/local/bin/wkhtmltopdf /tmp/report.header.tmp.l1ae35ik.html 
/tmp/report.body.tmp.0.s0vmsl3y.html z.pdf

I also noticed that "/usr/local/bin/wkhtmltopdf https://www.google.com"; crashes
when "/usr/local/bin/wkhtmltopdf --disable-javascript https://www.google.com";
does not. Not the same trace though :

Thread 1 received signal SIGTRAP, Trace/breakpoint trap.
0x000005550bc3369b in cti_op_construct_NotJSConstruct ()
(gdb) bt
#0  0x000005550bc3369b in cti_op_construct_NotJSConstruct ()
#1  0x000005550bc2dd98 in ctiTrampoline ()
#2  0x000005550bb53843 in JSC::Interpreter::execute(JSC::ProgramExecutable*, 
JSC::ExecState*, JSC::ScopeChainNode*, JSC::JSObject*) ()
#3  0x000005550bd331aa in JSC::evaluate(JSC::ExecState*, JSC::ScopeChainNode*, 
JSC::SourceCode const&, JSC::JSValue) ()
#4  0x000005550bd2371a in 
WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, 
WebCore::DOMWrapperWorld*) ()
#5  0x000005550bd23a26 in 
WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&) ()
#6  0x000005550c4192d2 in 
WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&) ()
#7  0x000005550c419938 in 
WebCore::ScriptElement::execute(WebCore::CachedScript*) ()
#8  0x000005550c41b2de in 
WebCore::ScriptRunner::timerFired(WebCore::Timer<WebCore::ScriptRunner>*) ()
#9  0x000005550bd70aed in WebCore::ThreadTimers::sharedTimerFiredInternal() ()
#10 0x000005550d5aa881 in QObject::event(QEvent*) ()
#11 0x000005550cd4d1b6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) 
()
#12 0x000005550cd4e8f3 in QApplication::notify(QObject*, QEvent*) ()
#13 0x000005550d593eb8 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
#14 0x000005550d5c10fd in QTimerInfoList::activateTimers() ()
#15 0x000005550d5c19a3 in 
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#16 0x000005550d5943e5 in 
QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#17 0x000005550ba9c19f in wkhtmltopdf::Converter::convert() ()
#18 0x000005550bac0b2c in main ()

Do you have any clue to help debugging this issue ?

Reply via email to