bugPSPP - Bugs: bug #37366, LC_NUMERIC locale is getting set,...

 
 

bug #37366: LC_NUMERIC locale is getting set, when it ought not to be

Submitter:  Mindaugas <embar>
Submitted:  Sun 16 Sep 2012 01:49:11 PM UTC
   
 
Category:  Graphical User Interface Severity:  5 - Average
Status:  Fixed Assigned to:  None
Open/Closed:  Closed Release:  Before 0.8.0
Effort:  0.00
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Wed 26 Dec 2012 01:21:55 PM UTC, comment #41: 

I've fixed all the locale issues that I could find. So I have pushed a change which sets all the locale categories, including LC_NUMERIC

This means, that numbers will now display in the user interface according to the locale, and hopefully no other ill effects will occur.

If problems arise, please re-open this bug.

John Darrington <jmd>
Group administrator
Tue 25 Dec 2012 08:13:29 AM UTC, comment #40: 

The immediate symptoms are fixed.

But there are still some related locale issues to be fixed.  Notably in the syntax generation of certain commands.  Until that is done, Mindaugas will almost certainly experience more problems.


Reopening....

John Darrington <jmd>
Group administrator
Tue 25 Dec 2012 01:24:21 AM UTC, comment #39: 

I think this is fixed now.

Ben Pfaff <blp>
Group administrator
Thu 20 Dec 2012 02:12:08 PM UTC, comment #38: 

Merci! It works!

But one problem appears after it... (I will describe in separate bug)

Mindaugas <embar>
Wed 19 Dec 2012 12:17:21 PM UTC, comment #37: 

I have pushed a few changes which should have fixed your immediate problem.

Can you please try it?  You will need to build against the most recent gnulib.

John Darrington <jmd>
Group administrator
Sun 02 Dec 2012 11:55:04 AM UTC, comment #36: 

So you did.  We'll discuss this further on the list.

John Darrington <jmd>
Group administrator
Sun 02 Dec 2012 11:14:13 AM UTC, comment #35: 
Mindaugas <embar>
Sun 02 Dec 2012 11:13:53 AM UTC, comment #34: 

In last post I attached modifited main.c and psppire.c, so you can watch at it.

Mindaugas <embar>
Sun 02 Dec 2012 11:00:19 AM UTC, comment #33: 


>  I think it would be nicer if program respect locale settings while displaying data (but program internaly may use other numeric format).


You are absolutely right.  We'll discus this on pspp-dev

In the meantime:
Something is happening between these two lines:

src/ui/gui/main.c:252 C
src/ui/gui/main.c:202 lt_LT.UTF-8

Obviously my line numbers are now different to yours.  Can you look at this more closely.
and maybe use
 printf ("%s:%d (%s) %s\n", _FILE_, _LINE_, _FUNCTION_, setlocale (LC_NUMERIC, NULL));
so that it is easier to see in which function the call is.



John Darrington <jmd>
Group administrator
Sun 02 Dec 2012 10:02:52 AM UTC, comment #32: 

I think it would be nicer if program respect locale settings while displaying data (but program internaly may use other numeric format).

> psppire

src/ui/gui/main.c:313 C
src/ui/gui/main.c:315 C
src/ui/gui/main.c:317 C
src/ui/gui/main.c:319 C
src/ui/gui/main.c:321 C
src/ui/gui/main.c:324 C
src/ui/gui/main.c:327 C
src/ui/gui/main.c:329 C
src/ui/gui/main.c:332 C
src/ui/gui/main.c:335 C
src/ui/gui/main.c:337 C
src/ui/gui/main.c:360 C
src/ui/gui/main.c:362 C
src/ui/gui/main.c:365 C
src/ui/gui/main.c:367 C
src/ui/gui/main.c:370 C
src/ui/gui/main.c:372 C
src/ui/gui/main.c:378 C
src/ui/gui/main.c:168 C
src/ui/gui/main.c:170 C
src/ui/gui/main.c:172 C
src/ui/gui/main.c:176 C
src/ui/gui/main.c:178 C
src/ui/gui/main.c:181 C
src/ui/gui/main.c:184 C
src/ui/gui/main.c:187 C
src/ui/gui/main.c:190 C
src/ui/gui/main.c:193 C
src/ui/gui/main.c:381 C
src/ui/gui/main.c:383 C
src/ui/gui/main.c:387 C
src/ui/gui/main.c:390 C
src/ui/gui/main.c:392 C
src/ui/gui/main.c:229 C
src/ui/gui/main.c:231 C
src/ui/gui/main.c:245 C
src/ui/gui/main.c:247 C
src/ui/gui/psppire.c:77 C
src/ui/gui/psppire.c:79 C
src/ui/gui/psppire.c:82 C
src/ui/gui/psppire.c:85 C
src/ui/gui/psppire.c:88 C
src/libpspp/i18n.c:665 C
src/libpspp/i18n.c:667 lt_LT.UTF-8
src/libpspp/i18n.c:671 ,
src/libpspp/i18n.c:684 C
src/ui/gui/psppire.c:90 C
src/ui/gui/psppire.c:92 C
src/ui/gui/psppire.c:419 C
src/ui/gui/psppire.c:421 C
src/ui/gui/psppire.c:95 C
src/ui/gui/psppire.c:98 C
src/ui/gui/psppire.c:101 C
src/ui/gui/psppire.c:257 C
src/ui/gui/psppire.c:259 C
src/ui/gui/psppire.c:261 C
src/ui/gui/psppire.c:103 C
src/ui/gui/psppire.c:106 C
src/ui/gui/psppire.c:109 C
src/ui/gui/psppire.c:111 C
src/ui/gui/psppire.c:114 C
src/ui/gui/psppire.c:116 C
src/ui/gui/psppire.c:118 C
src/ui/gui/psppire.c:121 C
src/ui/gui/main.c:249 C
src/ui/gui/main.c:252 C
src/ui/gui/main.c:202 lt_LT.UTF-8
src/ui/gui/main.c:204 lt_LT.UTF-8
src/ui/gui/main.c:206 lt_LT.UTF-8
src/ui/gui/psppire.c:390 lt_LT.UTF-8
src/ui/gui/psppire.c:392 lt_LT.UTF-8
src/ui/gui/psppire.c:394 lt_LT.UTF-8
src/ui/gui/psppire.c:411 lt_LT.UTF-8
src/ui/gui/psppire.c:413 lt_LT.UTF-8
src/data/data-out.c:817 lt_LT.UTF-8
src/data/data-out.c:863 78,0000
psppire: src/data/data-out.c:871: rounder_init: Assertion `r->integer_digits >= 0' failed.
Nutraukta (aborted)


(file #27024, file #27025)

Mindaugas <embar>
Sun 02 Dec 2012 08:55:17 AM UTC, comment #31: 

Here is the problem:

 src/libpspp/i18n.c:684 C
 src/data/data-out.c:817 lt_LT.UTF-8

Somewhere between i18n.c:684 and data-out.c:817 the LC_NUMERIC
locale category changes from C to lt_LT.UTF-8

It is supposed to remain at C.

I will need your help here to find out what is changing it.
Can you try pasting a lot of lines like
  printf ("%s:%d %s\n", _FILE_, _LINE_, setlocale (LC_NUMERIC, NULL));

throughout the code?  This way, we can hopefully find out where it is changing.
To start with, I suggest putting this liberally throughout
src/ui/gui/main.c and src/ui/gui/psppire.c

Thanks.

John Darrington <jmd>
Group administrator
Sun 02 Dec 2012 06:46:10 AM UTC, comment #30: 


> psppire

src/libpspp/i18n.c:665 C
src/libpspp/i18n.c:667 lt_LT.UTF-8
src/libpspp/i18n.c:671 ,
src/libpspp/i18n.c:684 C
src/data/data-out.c:817 lt_LT.UTF-8
src/data/data-out.c:863 0,0000

Mindaugas <embar>
Sat 01 Dec 2012 09:06:51 PM UTC, comment #29: 

If I use Darrington's exp.patch (attached), I see:

> psppire

src/libpspp/i18n.c:665 C
src/libpspp/i18n.c:667 lt_LT.UTF-8
src/libpspp/i18n.c:671 ,
src/libpspp/i18n.c:684 C
psppire: src/data/data-out.c:868: rounder_init: Assertion `r->integer_digits >= 0' failed.
Nutraukta (aborted)

OR

> psppire

src/libpspp/i18n.c:665 C
src/libpspp/i18n.c:667 lt_LT.UTF-8
src/libpspp/i18n.c:671 ,
src/libpspp/i18n.c:684 C
psppire: src/data/data-out.c:867: rounder_init: Assertion `r->integer_digits < 64' failed.
Nutraukta (aborted)


(file #27019)

Mindaugas <embar>
Sat 01 Dec 2012 08:35:14 PM UTC, comment #28: 

If I use attached ./src/libpspp/i18n.c:

(made by executing:

sed -re "680s/radix_char/\'\.\'/"  -i ./src/libpspp/i18n.c
sed -re "661,679d" -i ./src/libpspp/i18n.c
sed -re "616s/ok/true/"  -i ./src/libpspp/i18n.c
sed -re "584,615d" -i ./src/libpspp/i18n.c
sed -re "546,560s/^([^.]*)(setlocale)([^.]*)$/\/* \0 *\//" -i ./src/libpspp/i18n.c
)

the result is the same – crash with

psppire: src/data/data-out.c:868: rounder_init: Assertion `r->integer_digits >= 0' failed.
OR
psppire: src/data/data-out.c:867: rounder_init: Assertion `r->integer_digits < 64' failed.



(file #27017)

Mindaugas <embar>
Sat 01 Dec 2012 07:56:55 PM UTC, comment #27: 

If I use:

char
get_system_decimal (void)
{
 return '.';
}

in addition to compilation as comment #26,
there is no changes in result – i.e. chash is identical

Mindaugas <embar>
Sat 01 Dec 2012 07:23:15 PM UTC, comment #26: 

If I do variant 2 to hide lines with "setlocale" (sed -re "546,560s/^([^.]*)(setlocale)([^.]*)$/\/* \0 *\//" -i ./src/libpspp/i18n.c), PSPPIRE crash with
"psppire: src/data/data-out.c:867: rounder_init: Assertion `r->integer_digits < 64' failed."
(similar result to that, mentioned in comment #23).
Becides, PSPPIRE runs in English, not in Lithuanian.
And if I do this not in gdb, I see error:
"psppire: src/data/data-out.c:868: rounder_init: Assertion `r->integer_digits >= 0' failed."

Mindaugas <embar>
Sat 01 Dec 2012 06:35:26 PM UTC, comment #25: 

If I execute:
sed -re "s/^([^.]*)(setlocale)([^.]*)$/\/* \0 *\//" -i ./src/libpspp/i18n.c

Then compilation fails:
[  192s] src/libpspp/i18n.c: In function 'set_encoding_from_locale':
[  192s] src/libpspp/i18n.c:604:9: error: 'tmp' undeclared (first use in this function)
[  192s] src/libpspp/i18n.c:604:9: note: each undeclared identifier is reported only once for each function it appears in
[  192s] src/libpspp/i18n.c:582:39: warning: unused parameter 'loc' [-Wunused-parameter]
[  192s] src/libpspp/i18n.c: In function 'get_system_decimal':
[  192s] src/libpspp/i18n.c:679:9: error: 'ol' undeclared (first use in this function)
[  192s] make[2]: * [src/libpspp/src_libpspp_liblibpspp_la-i18n.lo] Error 1
[  192s] make[2]: Leaving directory `/home/abuild/rpmbuild/BUILD/pspp-0.7.9-g319a66'
[  192s] make[1]: * [all-recursive] Error 1
[  192s] make[1]: Leaving directory `/home/abuild/rpmbuild/BUILD/pspp-0.7.9-g319a66'
[  192s] make: * [all] Error 2

Mindaugas <embar>
Sat 01 Dec 2012 06:18:30 PM UTC, comment #24: 

if I enter "." (point),
then PSPPIRE don't crash and don't show error.

If I enter ",", I see error, that format is incorrect, even if I set variable type to be COMMA.

Mindaugas <embar>
Sat 01 Dec 2012 06:08:10 PM UTC, comment #23: 

[New Thread 0x7fffe5445700 (LWP 29904)]
psppire: src/data/data-out.c:867: rounder_init: Assertion `r->integer_digits < 64' failed.

Program received signal SIGABRT, Aborted.
0x00007ffff3c8cd25 in raise () from /lib64/libc.so.6
                  
(gdb) bt                                                                                                                                                                           
#0  0x00007ffff3c8cd25 in raise () from /lib64/libc.so.6                                                                                                                           
#1  0x00007ffff3c8e1a8 in abort () from /lib64/libc.so.6                                                                                                                           
#2  0x00007ffff3c85c22 in __assert_fail_base () from /lib64/libc.so.6                                                                                                              
#3  0x00007ffff3c85cd2 in __assert_fail () from /lib64/libc.so.6                                                                                                                   
#4  0x00007ffff7847a10 in rounder_init (max_decimals=<optimized out>, number=<optimized out>, r=0x7fffffffce60) at src/data/data-out.c:867
#5  output_number (input=<optimized out>, format=0xc8b290, output=0xc054d0 "\210v\377\363\377\177") at src/data/data-out.c:221
#6  0x00007ffff7847d32 in data_out_pool (input=input@entry=0x7fffffffcf50, encoding=0xc07b80 "UTF-8", format=format@entry=0xc8b290, pool=pool@entry=0x0) at src/data/data-out.c:190
#7  0x00007ffff7847ed7 in data_out (input=input@entry=0x7fffffffcf50, encoding=<optimized out>, format=format@entry=0xc8b290) at src/data/data-out.c:198
#8  0x0000000000454f73 in psppire_data_store_get_string (store=<optimized out>, row=0, column=<optimized out>) at src/ui/gui/psppire-data-store.c:626
#9  0x0000000000484467 in psppire_sheet_cell_draw (col=0, row=0, sheet=0x7a11c0) at lib/gtk-contrib/psppire-sheet.c:2116
#10 draw_sheet_region (sheet=sheet@entry=0x7a11c0, region=<optimized out>) at lib/gtk-contrib/psppire-sheet.c:2227
#11 0x0000000000486a27 in psppire_sheet_expose (widget=widget@entry=0x7a11c0, event=0x7fffffffd6d0) at lib/gtk-contrib/psppire-sheet.c:2761
#12 0x00007ffff6c9e9d9 in _gtk_marshal_BOOLEAN__BOXED (closure=0x7047f0, return_value=0x7fffffffd240, n_param_values=<optimized out>, param_values=0x7fffffffd2f0,
    invocation_hint=<optimized out>, marshal_data=<optimized out>) at gtkmarshalers.c:86
#13 0x00007ffff5096700 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
#14 0x00007ffff50a74f0 in ?? () from /usr/lib64/libgobject-2.0.so.0
#15 0x00007ffff50af2fb in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
#16 0x00007ffff50af872 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#17 0x00007ffff6db653e in gtk_widget_event_internal (widget=widget@entry=0x7a11c0, event=event@entry=0x7fffffffd6d0) at gtkwidget.c:4991
#18 0x00007ffff6db6801 in IA__gtk_widget_send_expose (widget=widget@entry=0x7a11c0, event=event@entry=0x7fffffffd6d0) at gtkwidget.c:4820
#19 0x00007ffff6c9d3c0 in IA__gtk_main_do_event (event=0x7fffffffd6d0) at gtkmain.c:1609
#20 0x00007ffff68f067c in _gdk_window_process_updates_recurse (window=window@entry=0x9cbd80, expose_region=expose_region@entry=0xc0a520) at gdkwindow.c:5429
#21 0x00007ffff68f0623 in _gdk_window_process_updates_recurse (window=window@entry=0x9cba20, expose_region=expose_region@entry=0xa10860) at gdkwindow.c:5402
#22 0x00007ffff68f0623 in _gdk_window_process_updates_recurse (window=window@entry=0x700d80, expose_region=expose_region@entry=0x8754a0) at gdkwindow.c:5402
#23 0x00007ffff691f5b5 in _gdk_windowing_window_process_updates_recurse (window=window@entry=0x700d80, region=region@entry=0x8754a0) at gdkwindow-x11.c:5626
#24 0x00007ffff68eb627 in gdk_window_process_updates_internal (window=0x700d80) at gdkwindow.c:5588
#25 0x00007ffff68ed7d1 in IA__gdk_window_process_all_updates () at gdkwindow.c:5696
#26 0x00007ffff6c20da1 in gtk_container_idle_sizer (data=<optimized out>) at gtkcontainer.c:1360
#27 0x00007ffff68cb467 in gdk_threads_dispatch (data=0xc11660) at gdk.c:512
#28 0x00007ffff4dd93b5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#29 0x00007ffff4dd96e8 in ?? () from /usr/lib64/libglib-2.0.so.0
#30 0x00007ffff4dd9ae2 in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#31 0x00007ffff6c9c0d7 in IA__gtk_main () at gtkmain.c:1256
#32 0x000000000044dd06 in run_inner_loop (data=<optimized out>) at src/ui/gui/main.c:233
#33 0x00007ffff6c9c22f in gtk_quit_invoke_function (quitf=0x75b2d0) at gtkmain.c:2386
#34 IA__gtk_main () at gtkmain.c:1275
#35 0x000000000041f96c in main (argc=1, argv=0x7fffffffdc98) at src/ui/gui/main.c:333

Mindaugas <embar>
Sat 01 Dec 2012 06:39:20 AM UTC, comment #22: 

I pushed some changes which will make the cause of the problem more apparent.  Unfortunately the problem itself has not been solved.  Also updated the title of this item accordingly.

John Darrington <jmd>
Group administrator
Fri 30 Nov 2012 09:36:39 PM UTC, comment #21: 

We don't call gtk_set_locale, so that can't be the problem.

I can only suggest that you try some simple experiments, successivly disabling the locale related stuff in src/libpspp/i18n.c

Try for example commenting out the entire body of get_system_decimal and make it return a single ","

Or all the setlocale calls in i18n_init

Any differences might give us a clue.

John Darrington <jmd>
Group administrator
Fri 30 Nov 2012 09:06:26 PM UTC, comment #20: 

In http://developer.gnome.org/gtk/2.24/gtk-General.html I see:
"gtk_set_locale has been deprecated since version 2.24 and should not be used in newly-written code."

Maybe this is somehow related?

Mindaugas <embar>
Fri 30 Nov 2012 08:07:58 PM UTC, comment #19: 

I use two versions of GTK: 2.24 and 3.4.4; glibc version is 2.15 (with some openSUSE patches backported from 2.16 version). These versions is standart for openSUSE 12.2.

Mindaugas <embar>
Fri 30 Nov 2012 07:41:34 PM UTC, comment #18: 

This is odd.

It works fine for me.  Except if I comment out the call to
gtk_disable_setlocale on line 285 of main.c

So it would seem that for you it is getting igored.  What version
of gtk do you use? and what libc version?

John Darrington <jmd>
Group administrator
Fri 30 Nov 2012 07:09:45 PM UTC, comment #17: 

I I use "LANG=C", the result is very different:
 > locale -c "LC_NUMERIC"
LC_NUMERIC
.

-1
46
0
ANSI_X3.4-1968

Mindaugas <embar>
Fri 30 Nov 2012 07:07:05 PM UTC, comment #16: 


> locale -c "LC_NUMERIC"

LC_NUMERIC
,
.
3;3
44
46
UTF-8

Mindaugas <embar>
Fri 30 Nov 2012 07:04:26 PM UTC, comment #15: 

~> locale
LANG=lt_LT.UTF-8
LC_CTYPE="lt_LT.UTF-8"
LC_NUMERIC="lt_LT.UTF-8"
LC_TIME="lt_LT.UTF-8"
LC_COLLATE="lt_LT.UTF-8"
LC_MONETARY="lt_LT.UTF-8"
LC_MESSAGES="lt_LT.UTF-8"
LC_PAPER="lt_LT.UTF-8"
LC_NAME="lt_LT.UTF-8"
LC_ADDRESS="lt_LT.UTF-8"
LC_TELEPHONE="lt_LT.UTF-8"
LC_MEASUREMENT="lt_LT.UTF-8"
LC_IDENTIFICATION="lt_LT.UTF-8"
LC_ALL=

Mindaugas <embar>
Fri 30 Nov 2012 05:59:56 PM UTC, comment #14: 

Mindaugus,

Can you post the output of the "locale" command, in an envronment
where this problem happens?


John Darrington <jmd>
Group administrator
Thu 29 Nov 2012 08:33:55 AM UTC, comment #13: 


> But all is good, if I use "LANG=C" before and then run PSPPIRE in terminal.


> Just before crash appears error:
> /usr/bin/psppire: „.5in“ nėra tinkamas ilgis.
> (this text is from PSPP translation to Lithuanian,
> in English:
> /usr/bin/psppire: `.5in' is not a valid length.)


Right.  This gives us a clue.

It is clear that one problem is in src/output/measure.c:53

  /* Number. */
  raw = strtod (dimen, &tail);
  if (raw < 0.0)
    goto syntax_error;

We should be using c_strtod instead of strtod.

This doesn't explain the crash however.  Perhaps something is not
checking the -1 return value from measure_dimension?

John Darrington <jmd>
Group administrator
Thu 29 Nov 2012 07:14:44 AM UTC, comment #12: 

It also crash in NL and FR locales (as LT) in same circumstances. I don't tested other locales.

I only don't crash, if I use LANG=C

Mindaugas <embar>
Thu 29 Nov 2012 07:10:23 AM UTC, comment #11: 

Becides, I can not open any *.sav file
(even default example file) if I use Lithuanian locale.
But all is good, if I  use "LANG=C" before and then run PSPPIRE in terminal.

Just before crash appears error:
/usr/bin/psppire: „.5in“ nėra tinkamas ilgis.
(this text is from PSPP translation to Lithuanian,
in English:
/usr/bin/psppire: `.5in' is not a valid length.)

I attatch backtrace again.

(file #26992)

Mindaugas <embar>
Sun 30 Sep 2012 06:25:48 AM UTC, comment #10: 

Attach full RPM build log (with installed packages versions)

Mindaugas <embar>
Sun 30 Sep 2012 06:12:58 AM UTC, comment #9: 

gcc47-4.7.1_20120723-1.1.1

Mindaugas <embar>
Sat 29 Sep 2012 08:27:16 PM UTC, comment #8: 

This doesn't really make sense.  Mindaugus, what version of what compiler is this?

Ben Pfaff <blp>
Group administrator
Tue 25 Sep 2012 06:03:57 AM UTC, comment #7: 

Thanks, Mindaugus!

The interesting part of the upload from comment #6 is:


==9882== Invalid read of size 1
==9882==    at 0x5162801: output_decimal (data-out.c:804)
==9882==    by 0x516348B: output_number (data-out.c:223)
==9882==    by 0x51639E1: data_out_pool (data-out.c:190)
==9882==    by 0x456342: psppire_data_store_get_string (psppire-data-store.c:626)
==9882==    by 0x483AF6: draw_sheet_region (psppire-sheet.c:2132)
==9882==    by 0x4860B6: psppire_sheet_expose (psppire-sheet.c:2777)
==9882==    by 0x65609D8: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:86)
==9882==    by 0x82F263D: g_closure_invoke (in /usr/lib64/libgobject-2.0.so.0.3200.4)
==9882==    by 0x83034EF: ??? (in /usr/lib64/libgobject-2.0.so.0.3200.4)
==9882==    by 0x830B2FA: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.3200.4)
==9882==    by 0x830B871: g_signal_emit (in /usr/lib64/libgobject-2.0.so.0.3200.4)
==9882==    by 0x667853D: gtk_widget_event_internal (gtkwidget.c:4991)
==9882==  Address 0x800000003 is not stack'd, malloc'd or (recently) free'd
==9882==
==9882==
==9882== Process terminating with default action of signal 11 (SIGSEGV)
==9882==  Access not within mapped region at address 0x800000003
==9882==    at 0x5162801: output_decimal (data-out.c:804)
==9882==    by 0x516348B: output_number (data-out.c:223)
==9882==    by 0x51639E1: data_out_pool (data-out.c:190)
==9882==    by 0x456342: psppire_data_store_get_string (psppire-data-store.c:626)
==9882==    by 0x483AF6: draw_sheet_region (psppire-sheet.c:2132)
==9882==    by 0x4860B6: psppire_sheet_expose (psppire-sheet.c:2777)
==9882==    by 0x65609D8: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:86)
==9882==    by 0x82F263D: g_closure_invoke (in /usr/lib64/libgobject-2.0.so.0.3200.4)
==9882==    by 0x83034EF: ??? (in /usr/lib64/libgobject-2.0.so.0.3200.4)
==9882==    by 0x830B2FA: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.3200.4)
==9882==    by 0x830B871: g_signal_emit (in /usr/lib64/libgobject-2.0.so.0.3200.4)
==9882==    by 0x667853D: gtk_widget_event_internal (gtkwidget.c:4991)


Ben Pfaff <blp>
Group administrator
Tue 25 Sep 2012 05:30:14 AM UTC, comment #6: 

I can not upload output here, you can find it as http://dl.dropbox.com/u/23309933/PSPP/Bug/2.txt

Mindaugas <embar>
Tue 25 Sep 2012 04:58:41 AM UTC, comment #5: 

Mindaugus: Can you run your test under "valgrind"?

Ben Pfaff <blp>
Group administrator
Thu 20 Sep 2012 08:44:34 PM UTC, comment #4: 

Attach bt4.txt

(file #26603)

Mindaugas <embar>
Thu 20 Sep 2012 09:28:40 AM UTC, comment #3: 

I'm not sure what's going on here.  The backtrace you posted still seems to have a lot of optimisation.

Anyway I pushed a small change which may or may not provide some information as to what is causing this problem.  Perhaps you could try it and let us know if anything different happens.

John Darrington <jmd>
Group administrator
Wed 19 Sep 2012 05:57:50 PM UTC, comment #2: 

Attach bt with configure CFLAGS="-g -O0"

(file #26592)

Mindaugas <embar>
Tue 18 Sep 2012 09:34:19 AM UTC, comment #1: 

I think we'll need your help with this one.

I tried following the backtrace you posted, but a lot of information has been optimised away.  Can you compile PSPP without optimisation (use ./configure CFLAGS="-g -O0") and post the backtrace ?


John Darrington <jmd>
Group administrator
Sun 16 Sep 2012 01:49:11 PM UTC, original submission:  

I use psppire 0.7.9-gacc57a (yesterday version).

I create new variable by pressing icon in tollbar, write number and press Enter. PSPPIRE crash:

Program received signal SIGSEGV, Segmentation fault.
rounder_width (negative=<synthetic pointer>, integer_digits=<synthetic pointer>, decimals=2, r=0x7fffffffae40) at src/data/data-out.c:894
894       if (should_round_up (r, decimals))

More detail in attached file

Mindaugas <embar>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #27024:  main.c added by embar (13KiB - text/x-csrc - main.c ir psppire.c with many "printf ("%s:%d %s\n", _FILE_, _LINE_, setlocale (LC_NUMERIC, NULL));")
file #27025:  psppire.c added by embar (15KiB - text/x-csrc - main.c ir psppire.c with many "printf ("%s:%d %s\n", _FILE_, _LINE_, setlocale (LC_NUMERIC, NULL));")
file #27019:  exp.patch added by embar (998B - text/x-patch - Darrington's exp.patch)
file #27017:  i18n.c added by embar (25KiB - text/x-csrc - src/libpspp/i18n.c)
file #26604:  bt5.txt added by embar (14KiB - text/plain - bt5.txt)
file #26603:  bt4.txt added by embar (13KiB - text/plain - bt4.txt)
file #26593:  bt3.txt added by embar (15KiB - text/plain - bt3.txt)
file #26592:  bt2.txt added by embar (14KiB - text/plain - backtrace No. 2)
file #26562:  bt.txt added by embar (13KiB - text/plain - backtrace)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by blp (Posted a comment)
  • -email is unavailable- added by jmd (Posted a comment)
  • -email is unavailable- added by embar (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 16 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2012-12-26 jmd Open/ClosedOpen Closed
    2012-12-25 jmd Open/ClosedClosed Open
    2012-12-25 blp StatusNone Fixed
        Open/ClosedOpen Closed
    2012-12-02 embar Attached File- Added main.c, #27024
        Attached File- Added psppire.c, #27025
    2012-12-01 embar Attached File- Added exp.patch, #27019
    2012-12-01 embar Attached File- Added i18n.c, #27017
    2012-12-01 jmd SummaryCrash: Can not write any data in sheet LC_NUMERIC locale is getting set, when it ought not to be
    2012-11-29 embar Attached File- Added pspp crash in Lithuanian locale.txt, #26992
    2012-11-26 blp ReleaseNone Before 0.8.0
    2012-09-20 embar Attached File- Added bt5.txt, #26604
    2012-09-20 embar Attached File- Added bt4.txt, #26603
    2012-09-19 embar Attached File- Added bt3.txt, #26593
    2012-09-19 embar Attached File- Added bt2.txt, #26592
    2012-09-16 embar Attached File- Added bt.txt, #26562

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code