Bug 113885 - Crash in: _ZNSt5dequeImSaImEE16_M_push_back_auxIJRKmEEEvDpOT_
Summary: Crash in: _ZNSt5dequeImSaImEE16_M_push_back_auxIJRKmEEEvDpOT_
Status: RESOLVED INSUFFICIENTDATA
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Impress (show other bugs)
Version:
(earliest affected)
5.4.2.2 release
Hardware: All Linux (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-11-16 17:30 UTC by opensuse.lietuviu.kalba
Modified: 2020-01-15 03:38 UTC (History)
4 users (show)

See Also:
Crash report or crash signature: ["_ZNSt5dequeImSaImEE16_M_push_back_auxIJRKmEEEvDpOT_"]


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description opensuse.lietuviu.kalba 2017-11-16 17:30:43 UTC
This bug was filed from the crash reporting server and is br-0aec7e1d-9bdd-43f8-b661-aad03f0b9a4c.
=========================================

LibreOffice unexpectedly crashed while editing slide, i.e. I was selected a line and tried to move it. 

Version: 5.4.2.2
ID: 22b09f6418e8c2d508a9eaf86b2399209b0990f4
Processor threads: 4; 
OS: openSUSE Leap 42.3
Linux kernel: 4.4; 
GUI: default; 
VCL: gtk2

Processor: Intel i5-4300M
Graphics:  Intel HD Graphics 4600 

MESA version: 17.1.6

LibreOffice installed via RPMs from LibreOffice site.
I can not intentionally reproduce this bug.
Comment 1 Julien Nabet 2017-11-16 17:55:40 UTC
@devs: searching about deque in vcl part of code, I found "typedef std::deque<std::pair<GdkScreen*, int> > ScreenMonitors_t;" on gtksys.hxx
Searching about ScreenMonitors_t + "push_back", I found this:
109              for (gint j(0); j != nMonitors; ++j)
110              {
111                  GdkRectangle aGeometry;
112                  gdk_screen_get_monitor_geometry(pScreen, j, &aGeometry);
113                  aGeometries.push_back(aGeometry);
114              }
in GtkSalSystem::countScreenMonitors()
see https://opengrok.libreoffice.org/xref/core/vcl/unx/gtk/gtksys.cxx#113

@reporter: just to be sure, do you use several monitors?

Also, are you able to reproduce the crash?
If yes, could you try with another rendering, I mean:
- launch a terminal,
- type one of these:
   - for gen rendering: export SAL_USE_VCLPLUGIN=gen
   - for kde rendering: export SAL_USE_VCLPLUGIN=kde4
- launch LO with your file
Comment 2 opensuse.lietuviu.kalba 2017-11-16 18:11:10 UTC
I have only one monitor, this is laptop monitor.
But as Linux user, I use a lot of virtual desktops (in KDE Plasma 5), and some LibreOffice documents were in different desktops.
Comment 3 opensuse.lietuviu.kalba 2017-11-16 18:13:15 UTC
I still can not reproduce this bug,
however in https://crashreport.libreoffice.org/stats/signature/_ZNSt5dequeImSaImEE16_M_push_back_auxIJRKmEEEvDpOT_ I see that 12 other Linux users had same problem in last month.
Comment 4 Xisco Faulí 2017-11-16 18:18:50 UTC
Could you please share the document?
Comment 5 opensuse.lietuviu.kalba 2017-11-16 18:20:52 UTC
Unfortunetly document was not saved before crash
Comment 6 Julien Nabet 2017-11-16 18:54:44 UTC
@devs:
I gave the wrong pointer, it's some lines below in fact:
https://opengrok.libreoffice.org/xref/core/vcl/unx/gtk/gtksys.cxx#122
emplace_back replaced push_back with c856ae17aff5db258eb16713f56fce9f28400d47
@@ -119,7 +119,7 @@ GtkSalSystem::countScreenMonitors()
                     GdkRectangleCoincident()));
             nMonitors = std::distance(aGeometries.begin(), aUniqueEnd);
         }
-        maScreenMonitors.push_back(std::make_pair(pScreen, nMonitors));
+        maScreenMonitors.emplace_back(pScreen, nMonitors);
     }
 }
c++filt _ZNSt5dequeImSaImEE16_M_push_back_auxIJRKmEEEvDpOT_ 
gives:
void std::deque<unsigned long, std::allocator<unsigned long> >::_M_push_back_aux<unsigned long const&>(unsigned long const&)
Comment 7 Julien Nabet 2017-11-16 19:17:51 UTC
Seeing the 12 same reports in crashreporter, let's put this one to NEW.
Searching about what could segfault when creating std::pair, I found this:
https://stackoverflow.com/questions/19009070/stdmake-pair-segmentation-fault-with-custom-class
Since "pScreen" type is GdkScreen*, this could be the pb.

Caolán: thought you might be interested in this one since it concerns gtk part (+virtual desktop).
Comment 8 Caolán McNamara 2017-11-16 21:13:05 UTC
I think you've definitely found the crashing line. That appears to be the only std::deque::push_back

pScreen is just a GdkScreen *pointer* though and nMonitors just a number so custom classes doesn't arise, just as well be two integers really, so perhaps the problem is with the maScreenMonitors or above in the stack trace

I can't actually see how one could get from vcl::Window::AcquireGraphics to GtkSalSystem::countScreenMonitors

countScreenMonitors is called either from GtkSalSystem::GtkSalSystem which should be done long before now or from screenSizeChanged and monitorsChanged which should be called from signal callbacks which isn't the case here.

so I don't know what's going on here. I feel a more generic bug further up the stack though.
Comment 9 QA Administrators 2019-06-15 03:00:27 UTC Comment hidden (obsolete)
Comment 10 Xisco Faulí 2019-06-17 15:51:41 UTC
Looking at https://crashreport.libreoffice.org/stats/signature/_ZNSt5dequeImSaImEE16_M_push_back_auxIJRKmEEEvDpOT_ we only have crash report from LibreOffice 5.4.2.2 which is EOL version.
Could you please try to reproduce it with the latest version of LibreOffice
from https://www.libreoffice.org/download/libreoffice-fresh/ ?
Comment 11 QA Administrators 2019-12-15 03:36:30 UTC Comment hidden (obsolete)
Comment 12 QA Administrators 2020-01-15 03:38:10 UTC
Dear opensuse.lietuviu.kalba,

Please read this message in its entirety before proceeding.

Your bug report is being closed as INSUFFICIENTDATA due to inactivity and
a lack of information which is needed in order to accurately
reproduce and confirm the problem. We encourage you to retest
your bug against the latest release. If the issue is still
present in the latest stable release, we need the following
information (please ignore any that you've already provided):

a) Provide details of your system including your operating
   system and the latest version of LibreOffice that you have
   confirmed the bug to be present

b) Provide easy to reproduce steps – the simpler the better

c) Provide any test case(s) which will help us confirm the problem

d) Provide screenshots of the problem if you think it might help

e) Read all comments and provide any requested information

Once all of this is done, please set the bug back to UNCONFIRMED
and we will attempt to reproduce the issue. Please do not:

a) respond via email 

b) update the version field in the bug or any of the other details
   on the top section of our bug tracker

Warm Regards,
QA Team

MassPing-NeedInfo-FollowUp