bugPSPP - Bugs: bug #44158, Crash when changing type of...

 
 

bug #44158: Crash when changing type of spreadsheet imported dataset

Submitted by:  John Darrington <jmd>
Submitted on:  Mon 02 Feb 2015 06:51:33 AM UTC  
 
Category:  Graphical User Interface Severity:  7 - Major
Status:  Fixed Assigned to:  Ben Pfaff <blp>
Open/Closed:  Closed Release:  None
Effort:  0.00

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Sun 31 Jan 2016 08:31:35 PM UTC, comment #4: 

I pushed a fix as commit 958e78555714e (spreadsheet: Avoid sharing a dictionary between spreadsheet and client.)

Ben Pfaff <blp>
Project AdministratorIn charge of this item.
Sun 31 Jan 2016 07:03:33 PM UTC, comment #3: 

The attached patch fixes the problem, but some refinement is needed for a final commit.

(file #36221)

Ben Pfaff <blp>
Project AdministratorIn charge of this item.
Sun 31 Jan 2016 06:08:03 PM UTC, comment #2: 

It's related to changing the type of a variable that is still being pulled from the original data source.  An experiment that shows that is, between steps 2 and 3, use the scroll bar to scroll all the way to the bottom of the data sheet.  This avoids the crash.

Backtrace:

#0  0xf7fdad60 in __kernel_vsyscall ()
#1  0xf6a53307 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#2  0xf6a549c3 in __GI_abort () at abort.c:89
#3  0xf6a4c687 in __assert_fail_base (fmt=0xf6b86794 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0xf7e1c923 "variable_matches_case (c, v)", file=file@entry=0xf7e1c8e6 "../src/data/case.c", line=line@entry=289, function=function@entry=0xf7e1cb19 <__PRETTY_FUNCTION__.4897> "case_data_rw") at assert.c:92
#4  0xf6a4c737 in __GI___assert_fail (assertion=0xf7e1c923 "variable_matches_case (c, v)", file=0xf7e1c8e6 "../src/data/case.c", line=289, function=0xf7e1cb19 <__PRETTY_FUNCTION__.4897> "case_data_rw") at assert.c:101
#5  0xf7db5e3c in case_data_rw (c=0x8a93540, v=0x89bc370) at ../src/data/case.c:289
#6  0xf7dcb42f in convert_xml_string_to_value (c=0x0, var=0x89bc370, xv=0x8313268 "123", type=VALUE_STRING, col=1, row=36) at ../src/data/gnumeric-reader.c:458
#7  0xf7dcb6ae in gnm_file_casereader_read (reader=0x8a90530, r_=0x89a2210) at ../src/data/gnumeric-reader.c:940
#8  0xf7db8434 in casereader_read (reader=0x8a90530) at ../src/data/casereader.c:71
#9  0xf7db76ef in buffer_case (s=0x83e6cf0) at ../src/data/casereader-shim.c:88
#10 0xf7db7767 in casereader_shim_read (reader=0x85475c8, s_=0x83e6cf0, offset=35) at ../src/data/casereader-shim.c:111
#11 0xf7db8270 in random_reader_peek (reader=0x85475c8, br_=0x8a8f9e0, idx=35) at ../src/data/casereader.c:566
#12 0xf7db866f in casereader_peek (reader=0x85475c8, idx=35) at ../src/data/casereader.c:157
#13 0xf7dc1667 in source_read (columns=0xffffcdd8, row=35, values=0xffffcdd0, n=1) at ../src/data/datasheet.c:1380
#14 0xf7dc2331 in datasheet_resize_column (ds=0x8430a60, column=35, new_width=0, resize_cb=0x80909b0 <resize_datum>, resize_cb_aux=0xffffce54) at ../src/data/datasheet.c:510
#15 0x08090b52 in variable_changed_callback (obj=0x82b0008, var_num=1, what=12290, oldvar=0x0, data=0x8146118) at ../src/ui/gui/psppire-data-store.c:250
#16 0xf71a383b in g_closure_invoke (closure=0x82c6d38, return_value=0x0, n_param_values=4, param_values=0xffffcfd0, invocation_hint=0xffffcf88) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gclosure.c:768
#17 0xf71b5855 in signal_emit_unlocked_R (node=0x0, node@entry=0x829bd90, detail=6, detail@entry=0, instance=0x82b0008, emission_return=0x0, instance_and_params=0xffffcfd0) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gsignal.c:3553
#18 0xf71bdeda in g_signal_emit_valist (instance=0x82b0008, signal_id=225, detail=0, var_args=0xffffd158 "0\001") at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gsignal.c:3309
#19 0xf71be0d5 in g_signal_emit (instance=0x82b0008, signal_id=225, detail=0) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gsignal.c:3365
#20 0x080a76a0 in mutcb (d=0x89bc228, idx=1, what=12290, oldvar=0x8a9abc8, pd=0x82b0008) at ../src/ui/gui/psppire-dict.c:238
#21 0xf7dc6119 in dict_var_changed (v=0x89bc370, what=12290, oldvar=0x8a9abc8) at ../src/data/dictionary.c:1620
#22 0xf7de668c in var_set_width_and_formats (v=0x89bc370, new_width=0, print=0xffffd224, write=0xffffd224) at ../src/data/variable.c:307
#23 0x080b2ef0 in on_type_click (cell=0x81b8158, path=0x84fda40 "1", var_sheet=0x83584a8) at ../src/ui/gui/psppire-var-sheet.c:543
#24 0xf71a619d in g_cclosure_marshal_VOID__STRINGv (closure=0x8395448, return_value=0x0, instance=0x81b8158, args=0xffffd498 "\220\335=\b", marshal_data=0x0, n_params=1, param_types=0x81b69a0) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gmarshal.c:1004
#25 0xf71a3a5f in _g_closure_invoke_va (closure=0x8395448, return_value=0x0, instance=0x81b8158, args=0xffffd498 "\220\335=\b", n_params=1, param_types=0x81b69a0) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gclosure.c:831
#26 0xf71bd7f9 in g_signal_emit_valist (instance=0x81b8158, signal_id=298, detail=0, var_args=0xffffd498 "\220\335=\b") at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gsignal.c:3218
#27 0xf71be575 in g_signal_emit_by_name (instance=0x81b8158, detailed_signal=0x80c9664 "clicked") at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gsignal.c:3405
#28 0x0807b12d in psppire_cell_renderer_button_clicked (button=0x8570248, data=0x81b8158) at ../src/ui/gui/psppire-cell-renderer-button.c:301
#29 0xf71a54e7 in g_cclosure_marshal_VOID__VOIDv (closure=0x84f8198, return_value=0x0, instance=0x8570248, args=0xffffd67c "\231\346a\367\207\346a\367H\002W\bȾ\252\bE\257\a\bH\002W\b\314g\f\b\211\260", <incomplete sequence \367>, marshal_data=0x0, n_params=0, param_types=0x0) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gmarshal.c:115
#30 0xf71a3a5f in _g_closure_invoke_va (closure=0x84f8198, return_value=0x0, instance=0x8570248, args=0xffffd67c "\231\346a\367\207\346a\367H\002W\bȾ\252\bE\257\a\bH\002W\b\314g\f\b\211\260", <incomplete sequence \367>, n_params=0, param_types=0x0) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gclosure.c:831
#31 0xf71bd7f9 in g_signal_emit_valist (instance=0x8570248, signal_id=163, detail=0, var_args=0xffffd67c "\231\346a\367\207\346a\367H\002W\bȾ\252\bE\257\a\bH\002W\b\314g\f\b\211\260", <incomplete sequence \367>) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gsignal.c:3218
#32 0xf71be0d5 in g_signal_emit (instance=0x8570248, signal_id=163, detail=0) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./gobject/gsignal.c:3365
#33 0xf761e6f1 in gtk_button_clicked () from /usr/lib/i386-linux-gnu/libgtk-3.so.0
#34 0x0807af45 in psppire_cell_renderer_button_initial_click (data=0x8570248) at ../src/ui/gui/psppire-cell-renderer-button.c:313
#35 0xf70b1500 in g_idle_dispatch (source=0x84c2400, callback=0x807af20 <psppire_cell_renderer_button_initial_click>, user_data=0x8570248) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./glib/gmain.c:5367
#36 0xf70b4cb3 in g_main_dispatch (context=<optimized out>) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./glib/gmain.c:3111
#37 g_main_context_dispatch (context=0x0) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./glib/gmain.c:3710
#38 0xf70b50c9 in g_main_context_iterate (context=0x81293b8, block=6, block@entry=1, dispatch=1, self=<optimized out>) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./glib/gmain.c:3781
#39 0xf70b5479 in g_main_loop_run (loop=0x8147640) at /build/glib2.0-BmD7JP/glib2.0-2.42.0/./glib/gmain.c:3975
#40 0xf770f9ae in gtk_main () from /usr/lib/i386-linux-gnu/libgtk-3.so.0
#41 0x0805e315 in main (argc=1, argv=0xffffd8b4) at ../src/ui/gui/main.c:327

Ben Pfaff <blp>
Project AdministratorIn charge of this item.
Sun 31 Jan 2016 05:56:58 PM UTC, comment #1: 

Confirmed, thanks.  I'll continue to look into it.

Ben Pfaff <blp>
Project AdministratorIn charge of this item.
Mon 02 Feb 2015 06:51:33 AM UTC, original submission:  

1. Open the Gui.

2. Import the attached gnumeric file using the command:

   GET DATA
  /TYPE=GNM
  /FILE="xx.gnumeric"
  /SHEET=index 1
  /READNAMES=ON
  /CELLRANGE=RANGE "A1:B51".

  The second variable will (correctly) be of type string.

3. In the variable sheet, change the variable to type Numeric.
   The program crashes.

John Darrington <jmd>
Project Administrator

 

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

Attach Files:
   
   
Comment:
   

Attached Files
file #36221:  bug44158.patch added by blp (1KiB - text/x-diff)
file #32973:  xx.gnumeric added by jmd (2KiB - application/x-gnumeric)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by blp (Updated the item)
  • -email is unavailable- added by jmd (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

     

     

    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-01-31 blp StatusNone => Fixed
        Open/ClosedOpen => Closed
    2016-01-31 blp Attached File- => Added bug44158.patch, #36221
    2016-01-28 blp Assigned toNone => blp
    2015-02-02 jmd Attached File- => Added xx.gnumeric, #32973

    Back to the top


    Powered by Savane 3.5