Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using :download on about:blank segfaults #8048

Open
The-Compiler opened this issue Dec 23, 2023 · 0 comments
Open

Using :download on about:blank segfaults #8048

The-Compiler opened this issue Dec 23, 2023 · 0 comments
Labels
bug: segfault/crash/hang There's a low-level crash in C++, or a hang/freeze. component: downloads Issues related to downloads. component: prompts Issues related to prompts/questions qutebrowser shows. priority: 2 - low Issues which are currently not very important.

Comments

@The-Compiler
Copy link
Member

Version info:

qutebrowser v3.1.0
Git commit: a9f6ad973 on main (2023-12-08 15:30:58 +0000)
Backend: QtWebEngine 6.6.1, based on Chromium 112.0.5615.213 (from api)
Qt: 6.6.1

Does the bug happen if you start with --temp-basedir?: yes

Description

19:28:25 DEBUG    commands   command:run:513 command called: download
19:28:25 DEBUG    commands   command:run:527 Calling qutebrowser.browser.commands.CommandDispatcher.download(<qutebrowser.browser.commands.CommandDispatcher>, None, mhtml_=False, dest=None)
19:28:25 DEBUG    downloads  qtnetworkdownloads:fetch:537 fetch: PyQt6.QtCore.QUrl('about:blank') -> about:blank.html
19:28:25 DEBUG    downloads  downloads:_on_begin_insert_row:1056 _on_begin_insert_row with idx 0, webengine False
19:28:25 DEBUG    prompt     prompt:ask_question:138 Asking question <qutebrowser.utils.usertypes.Question default='/tmp/qutebrowser-basedir-y6x1wv8e/download/' mode=<PromptMode.download: 5> option=None text='Please enter a location for <b>about:blank</b>' title='Save file to:'>, blocking False, loops [], queue deque([])
[New Thread 0x7ffec209e6c0 (LWP 34662)]
19:28:25 DEBUG    prompt     prompt:_on_show_prompts:323 Displaying prompt qutebrowser.mainwindow.prompt.DownloadFilenamePrompt(question=<qutebrowser.utils.usertypes.Question default='/tmp/qutebrowser-basedir-y6x1wv8e/download/' mode=<PromptMode.download: 5> option=None text='Please enter a location for <b>about:blank</b>' title='Save file to:'>)
19:28:25 DEBUG    modes      modeman:enter:360 Entering mode KeyMode.prompt (reason: question asked)
19:28:25 DEBUG    statusbar  bar:set_mode_active:336 Setting prompt flag to True
19:28:25 DEBUG    misc       app:on_focus_object_changed:570 Focus object changed: <qutebrowser.mainwindow.prompt.LineEdit, className='LineEdit'>
19:28:25 DEBUG    misc       mainwindow:_update_overlay_geometry:348 new geometry for <qutebrowser.mainwindow.prompt.PromptContainer win_id=0>: PyQt6.QtCore.QRect(10, 1619, 1885, 479)
19:28:25 DEBUG    modes      modeman:_handle_keypress:309 match: SequenceMatch.ExactMatch, forward_unbound_keys: auto, passthrough: False, is_non_alnum: False, dry_run: False --> filter: True (focused: <qutebrowser.mainwindow.prompt.LineEdit, className='LineEdit'>)
19:28:25 DEBUG    message    message:_log_stack:40 Stack for error message:
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py", line 15, in <module>
    sys.exit(qutebrowser.qutebrowser.main())
  File "/home/florian/proj/qutebrowser/git/qutebrowser/qutebrowser.py", line 231, in main
    return app.run(args)
  File "/home/florian/proj/qutebrowser/git/qutebrowser/app.py", line 115, in run
    ret = qt_mainloop()
  File "/home/florian/proj/qutebrowser/git/qutebrowser/app.py", line 125, in qt_mainloop
    return objects.qapp.exec()
  File "/home/florian/proj/qutebrowser/git/qutebrowser/browser/qtnetworkdownloads.py", line 345, in _on_reply_error
    self._die(error)
  File "/home/florian/proj/qutebrowser/git/qutebrowser/browser/downloads.py", line 525, in _die
    self.error.emit(msg)
  File "/home/florian/proj/qutebrowser/git/qutebrowser/browser/downloads.py", line 967, in _on_error
    message.error("Download error: {}".format(msg))
  File "/home/florian/proj/qutebrowser/git/qutebrowser/utils/message.py", line 58, in error
    stack = ''.join(traceback.format_stack())
19:28:25 ERROR    message    message:error:63 Download error: Protocol "about" is unknown
19:28:25 DEBUG    misc       mainwindow:_update_overlay_geometry:348 new geometry for <qutebrowser.mainwindow.messageview.MessageView object at 0x7fffb8bc43a0>: PyQt6.QtCore.QRect(0, 2075, 1905, 23)
19:28:25 DEBUG    modes      modeman:leave:428 Leaving mode KeyMode.prompt (reason: aborted)
19:28:25 DEBUG    statusbar  bar:set_mode_active:336 Setting prompt flag to False
19:28:25 DEBUG    prompt     prompt:_on_mode_left:202 Left mode KeyMode.prompt, hiding <qutebrowser.utils.usertypes.Question default='/tmp/qutebrowser-basedir-y6x1wv8e/download/' mode=<PromptMode.download: 5> option=None text='Please enter a location for <b>about:blank</b>' title='Save file to:'>
19:28:25 DEBUG    prompt     prompt:_on_show_prompts:298 Deleting old prompt qutebrowser.mainwindow.prompt.DownloadFilenamePrompt(question=<qutebrowser.utils.usertypes.Question default='/tmp/qutebrowser-basedir-y6x1wv8e/download/' mode=<PromptMode.download: 5> option=None text='Please enter a location for <b>about:blank</b>' title='Save file to:'>)
19:28:25 DEBUG    prompt     prompt:_on_show_prompts:302 No prompts left, hiding prompt container.
19:28:25 DEBUG    modes      tabbedbrowser:on_release_focus:874 Focus released, focusing <qutebrowser.browser.webengine.webenginetab.WebEngineTab tab_id=0 url='about:blank'>
19:28:25 DEBUG    misc       app:on_focus_object_changed:570 Focus object changed: <PyQt6.QtWidgets.QWidget object at 0x7fffa0f67010, className='QQuickWidget'>
19:28:25 DEBUG    misc       app:on_focus_object_changed:570 Focus object changed: <PyQt6.QtCore.QObject object at 0x7fffa0f67010, className='QtWebEngineCore::RenderWidgetHostViewQtDelegateItem'>
19:28:25 DEBUG    modes      modeman:leave:421 Ignoring leave request for KeyMode.prompt (reason left in other window) as we're in mode KeyMode.normal
19:28:25 DEBUG    modes      modeman:leave:428 Leaving mode KeyMode.normal (reason: enter normal: restore mode before prompt)

Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x00007ffff1993e46 in QFileInfoGatherer::getInfo(QFileInfo const&) const () from /usr/lib/libQt6Gui.so.6
(gdb) bt
#0  0x00007ffff1993e46 in QFileInfoGatherer::getInfo(QFileInfo const&) const () at /usr/lib/libQt6Gui.so.6
#1  0x00007ffff19a207c in QFileSystemModelPrivate::_q_fileSystemChanged(QString const&, QList<std::pair<QString, QFileInfo> > const&) () at /usr/lib/libQt6Gui.so.6
#2  0x00007ffff59a5447 in QObject::event(QEvent*) () at /usr/lib/libQt6Core.so.6
#3  0x00007ffff11a7dcc in sipQFileSystemModel::event(QEvent*) (this=0x55555654f360, a0=0x7ffeac00a9a0) at /usr/src/debug/pyqt6/PyQt6-6.6.1/build/QtGui/sipQtGuiQFileSystemModel.cpp:391
#4  0x00007ffff1f7319b in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt6Widgets.so.6
[...]

How to reproduce

python3 -m qutebrowser --temp-basedir about:blank ":cmd-later 100 download"

@The-Compiler The-Compiler added component: downloads Issues related to downloads. priority: 2 - low Issues which are currently not very important. component: prompts Issues related to prompts/questions qutebrowser shows. bug: segfault/crash/hang There's a low-level crash in C++, or a hang/freeze. labels Dec 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug: segfault/crash/hang There's a low-level crash in C++, or a hang/freeze. component: downloads Issues related to downloads. component: prompts Issues related to prompts/questions qutebrowser shows. priority: 2 - low Issues which are currently not very important.
Projects
None yet
Development

No branches or pull requests

1 participant