After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 739811 - Crash after writing dot from keyboard
Crash after writing dot from keyboard
Status: RESOLVED DUPLICATE of bug 737291
Product: gnome-calculator
Classification: Core
Component: general
3.14.x
Other Linux
: High critical
: ---
Assigned To: gcalctool maintainers
gcalctool maintainers
Depends on:
Blocks:
 
 
Reported: 2014-11-08 11:24 UTC by quadword
Modified: 2014-11-10 16:26 UTC
See Also:
GNOME target: ---
GNOME version: 3.13/3.14


Attachments
Core dump of gnome-calculator (1.25 MB, application/octet-stream)
2014-11-08 11:24 UTC, quadword
Details
nosym gdb backtrace (5.38 KB, text/plain)
2014-11-08 20:41 UTC, quadword
Details
gdb backtrace with syms (6.43 KB, text/plain)
2014-11-08 23:03 UTC, quadword
Details
Core dump of gnome-calculator (bt@290243) (1.25 MB, application/x-bzip)
2014-11-08 23:06 UTC, quadword
Details

Description quadword 2014-11-08 11:24:31 UTC
Created attachment 290212 [details]
Core dump of gnome-calculator

Hi all,
gnome-calculator crashes (SIGSEGV) writing a dot from keyboard (not numeric keypad) after writing any number.

As example try to write:
(using numeric keypad)3.14+3(using keyboard). 
It could be a libgtk-3.so issue, too.

Core dump in attachment.

Best Regards,
Luigi

PS: 
last few strace lines before crash are following:

write(2, "\n(gnome-calculator:21146): Gtk-W"..., 545
(gnome-calculator:21146): Gtk-WARNING **: Invalid text buffer iterator: either the iterator is uninitialized, or the characters/pixbufs/widgets in the buffer have been modified since the iterator was created.
You must use marks, character numbers, or line numbers to preserve a position across buffer modifications.
You can apply tags and insert marks without invalidating your iterators,
but any mutation that affects 'indexable' buffer contents (contents that can be referred to by character offset)
will invalidate all outstanding iterators
) = 545
write(2, "\n(gnome-calculator:21146): Gtk-W"..., 545
(gnome-calculator:21146): Gtk-WARNING **: Invalid text buffer iterator: either the iterator is uninitialized, or the characters/pixbufs/widgets in the buffer have been modified since the iterator was created.
You must use marks, character numbers, or line numbers to preserve a position across buffer modifications.
You can apply tags and insert marks without invalidating your iterators,
but any mutation that affects 'indexable' buffer contents (contents that can be referred to by character offset)
will invalidate all outstanding iterators
) = 545
write(2, "\n(gnome-calculator:21146): Gtk-C"..., 131
(gnome-calculator:21146): Gtk-CRITICAL **: gtk_text_buffer_set_mark: assertion 'gtk_text_iter_get_buffer (iter) == buffer' failed
) = 131
write(2, "\n(gnome-calculator:21146): GLib-"..., 107
(gnome-calculator:21146): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
) = 107
poll([{fd=8, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=8, revents=POLLOUT}])
writev(8, [{"\22\0\7\0\t\0\200\3\234\1\0\0\6\0\0\0 \0\0\0\1\0\0\0\300\n\216\10", 28}, {NULL, 0}, {"", 0}], 3) = 28
recvmsg(8, 0x7fff0dde3c30, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=8, events=POLLIN}, {fd=3, events=POLLIN}], 3, 0) = 0 (Timeout)
recvmsg(8, 0x7fff0dde3c30, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=8, events=POLLIN}, {fd=3, events=POLLIN}], 3, 0) = 0 (Timeout)
recvmsg(8, 0x7fff0dde2b80, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(8, 0x7fff0dde2b80, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=8, revents=POLLOUT}])
writev(8, [{"\206\3\4\0\v\0\200\3\0\0\0\0G\0\0\0005 \4\0\262\1\200\3\10\0\200\3*\1$\0"..., 856}, {NULL, 0}, {"", 0}], 3) = 856
recvmsg(8, 0x7fff0dde3c30, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=8, events=POLLIN}, {fd=3, events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
recvmsg(8, {msg_name(0)=NULL, msg_iov(1)=[{"A\0~\10\264\1\200\3\3\0\202\0.\0\200\3\0@8\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 64
recvmsg(8, 0x7fff0dde3c50, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(8, 0x7fff0dde3b00, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(8, 0x7fff0dde3c30, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=8, events=POLLIN}, {fd=3, events=POLLIN}], 3, 0) = 0 (Timeout)
recvmsg(8, 0x7fff0dde3c30, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=8, events=POLLIN}, {fd=3, events=POLLIN}], 3, 0) = 0 (Timeout)
recvmsg(8, 0x7fff0dde3c30, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=8, events=POLLIN}, {fd=3, events=POLLIN}], 3, 238) = 1 ([{fd=8, revents=POLLIN}])
recvmsg(8, {msg_name(0)=NULL, msg_iov(1)=[{"\241 \241\10\10\0\200\3\250\1\0\0J\0\0\0\0\0\0\0\36@\332j!\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(8, 0x7fff0dde3c50, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(8, 0x7fff0dde3b00, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(8, 0x7fff0dde3c30, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=8, events=POLLIN}, {fd=3, events=POLLIN}], 3, 237) = 1 ([{fd=8, revents=POLLIN}])
recvmsg(8, {msg_name(0)=NULL, msg_iov(1)=[{"\241 \241\10\10\0\200\3\251\1\0\0J\0\0\0\0\0\0\0\0\0\0\0\32A\0\0\320\7\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(8, 0x7fff0dde3c50, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(8, 0x7fff0dde3b00, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(8, 0x7fff0dde3c30, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=8, events=POLLIN}, {fd=3, events=POLLIN}], 3, 236) = 1 ([{fd=8, revents=POLLIN}])
recvmsg(8, {msg_name(0)=NULL, msg_iov(1)=[{"#\203\241\10\26\0\0\0\3\0\3\0\7\v\216\10<\0\0\0\204\2\0\0\t\0\200\3\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 120
recvmsg(8, 0x7fff0dde3c50, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(8, 0x7fff0dde3c30, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=8, events=POLLIN}, {fd=3, events=POLLIN}], 3, 182) = 0 (Timeout)
write(2, "\n(gnome-calculator:21146): GtkSo"..., 85
(gnome-calculator:21146): GtkSourceView-WARNING **: Completion context without mark
) = 85
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x50} ---
+++ killed by SIGSEGV (core dumped) +++
Comment 1 Michael Catanzaro 2014-11-08 16:21:21 UTC
Thanks for taking the time to report this bug.

I can't reproduce this issue, so can you please attach a stack trace? Without a stack trace from the crash it's very hard to determine what caused it. You can generate a stack trace for the crash on your computer using the core dump you attached in the first post. Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!

Also, please let us know whether you're using 3.14.0 or 3.14.1, that might possibly be relevant here.
Comment 2 Michael Catanzaro 2014-11-08 16:22:19 UTC
Also, can you please post the output of the 'locale' command, as that might possibly be relevant as well.
Comment 3 quadword 2014-11-08 20:41:55 UTC
Created attachment 290240 [details]
nosym gdb backtrace
Comment 4 quadword 2014-11-08 20:43:39 UTC
Hi,
the package coming from the ppa:gnome3-team/gnome3-staging repository on ubuntu 14.10 (it is latest package version gnome-calculator-1:3.14.0-1ubuntu1~utopic2) and i'm searching for the package with debug symbols but i cannot find it at now
(and unfortunately i have no time to compile by source at now). 
Please, can you give me some hints on how i can download the package 
compiled with debug symbols ? 

My locale and localectl output is as follow:
root@hurricane:/tmp# locale
LANG=it_IT.UTF-8
LANGUAGE=
LC_CTYPE="it_IT.UTF-8"
LC_NUMERIC="it_IT.UTF-8"
LC_TIME="it_IT.UTF-8"
LC_COLLATE="it_IT.UTF-8"
LC_MONETARY="it_IT.UTF-8"
LC_MESSAGES="it_IT.UTF-8"
LC_PAPER="it_IT.UTF-8"
LC_NAME="it_IT.UTF-8"
LC_ADDRESS="it_IT.UTF-8"
LC_TELEPHONE="it_IT.UTF-8"
LC_MEASUREMENT="it_IT.UTF-8"
LC_IDENTIFICATION="it_IT.UTF-8"
LC_ALL=

root@hurricane:/tmp# localectl 
   System Locale: LANG=it_IT.UTF-8
       VC Keymap: it2
      X11 Layout: it,us,gb
     X11 Variant: ,,


Best Regards,
Luigi
Comment 5 quadword 2014-11-08 23:03:43 UTC
Created attachment 290243 [details]
gdb backtrace with syms

i'm just doing it
Comment 6 quadword 2014-11-08 23:06:39 UTC
Created attachment 290244 [details]
Core dump of gnome-calculator (bt@290243)
Comment 7 quadword 2014-11-09 08:25:14 UTC
Hi,
i'm adding also the messages after crash when executing from terminal. 
Really it could be related to the locale, because if i use comma (which is the locale symbol for decimal place separator, while dot is thousand separator) instead of dot nothing happens.
I think also dot and comma keys could have the same function because in almost all real calculators (and keypads) comma is not a provided key.

---------------------- from terminal
(gnome-calculator:26585): Gtk-WARNING **: Invalid text buffer iterator: either the iterator is uninitialized, or the characters/pixbufs/widgets in the buffer have been modified since the iterator was created.
You must use marks, character numbers, or line numbers to preserve a position across buffer modifications.
You can apply tags and insert marks without invalidating your iterators,
but any mutation that affects 'indexable' buffer contents (contents that can be referred to by character offset)
will invalidate all outstanding iterators

(gnome-calculator:26585): Gtk-WARNING **: Invalid text buffer iterator: either the iterator is uninitialized, or the characters/pixbufs/widgets in the buffer have been modified since the iterator was created.
You must use marks, character numbers, or line numbers to preserve a position across buffer modifications.
You can apply tags and insert marks without invalidating your iterators,
but any mutation that affects 'indexable' buffer contents (contents that can be referred to by character offset)
will invalidate all outstanding iterators

(gnome-calculator:26585): Gtk-CRITICAL **: gtk_text_buffer_set_mark: assertion 'gtk_text_iter_get_buffer (iter) == buffer' failed

(gnome-calculator:26585): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(gnome-calculator:26585): GtkSourceView-WARNING **: Completion context without mark


Best Regards,
Luigi
Comment 8 Michael Catanzaro 2014-11-10 00:49:09 UTC
OK, based on that backtrace, this is bug #737291, which is *probably* fixed in 3.14.1.  After you get 3.14.1, please do respond to let me know if it's fixed or if it's still broken. Thanks!

*** This bug has been marked as a duplicate of bug 737291 ***
Comment 9 quadword 2014-11-10 16:26:41 UTC
Ok, i got it. 
You are welcome.

Best Regards,
Luigi