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 712388 - [abrt] Crash when opening Properties of a Weather calendar
[abrt] Crash when opening Properties of a Weather calendar
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Calendar
3.8.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2013-11-15 19:08 UTC by Milan Crha
Modified: 2013-11-18 20:38 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
eds patch (6.43 KB, patch)
2013-11-18 20:04 UTC, Milan Crha
committed Details | Review
evo patch (3.74 KB, patch)
2013-11-18 20:12 UTC, Milan Crha
committed Details | Review

Description Milan Crha 2013-11-15 19:08:10 UTC
Moving this from a downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=1029972

Description of problem:
1) In Evolution's calendar view, create a new calendar of the "Weather" type.
2) Right click on the weather calendar in the side bar and select "Properties".
3) Evolution crashes.

The city I selected when creating the weather calendar was "Grand Rapids, Michigan, United States". But the crash behavior seems the same when I select other cities, for example: "Sault Ste. Marie, Michigan, United States."

Version-Release number of selected component:
evolution-3.8.5-2.fc19

Additional info:
reporter:       libreport-2.1.9
backtrace_rating: 4
cmdline:        evolution
crash_function: gweather_location_equal
executable:     /usr/bin/evolution
kernel:         3.11.7-200.fc19.x86_64

Core was generated by `evolution'.
Program terminated with signal 11, Segmentation fault.

Thread 1 (Thread 0x7f555e2afa40 (LWP 2332))

  • #0 gweather_location_equal
    at gweather-location.c line 860
  • #1 gweather_location_entry_set_location
    at location-entry.c line 242
  • #2 object_set_property
    at gobject.c line 1358
  • #3 g_object_set_property
    at gobject.c line 2155
  • #4 on_source_notify
    at gbinding.c line 379
  • #5 g_object_bind_property_full
  • #6 cal_config_weather_insert_widgets
    at evolution-cal-config-weather.c line 199
  • #7 source_config_add_candidate
    at e-source-config.c line 218
  • #8 source_config_init_for_editing_source
    at e-source-config.c line 491
  • #9 source_config_realize
    at e-source-config.c line 719
  • #10 _g_closure_invoke_va
    at gclosure.c line 840
  • #11 g_signal_emit_valist
    at gsignal.c line 3234
  • #12 g_signal_emit
    at gsignal.c line 3384
  • #13 gtk_widget_realize
    at gtkwidget.c line 4824
  • #14 gtk_widget_map
    at gtkwidget.c line 4359
  • #15 gtk_box_forall
    at gtkbox.c line 1865
  • #16 gtk_container_map
    at gtkcontainer.c line 3261
  • #17 _g_closure_invoke_va
    at gclosure.c line 840
  • #18 g_signal_emit_valist
    at gsignal.c line 3234
  • #19 g_signal_emit
    at gsignal.c line 3384
  • #20 gtk_widget_map
    at gtkwidget.c line 4361
  • #21 gtk_window_map
    at gtkwindow.c line 4898
  • #22 gtk_dialog_map
    at gtkdialog.c line 464
  • #23 _g_closure_invoke_va
    at gclosure.c line 840
  • #24 g_signal_emit_valist
    at gsignal.c line 3234
  • #25 g_signal_emit
    at gsignal.c line 3384
  • #26 gtk_widget_map
    at gtkwidget.c line 4361
  • #27 gtk_window_show
    at gtkwindow.c line 4840
  • #28 g_closure_invoke
    at gclosure.c line 777
  • #29 signal_emit_unlocked_R
    at gsignal.c line 3514
  • #30 g_signal_emit_valist
    at gsignal.c line 3328
  • #31 g_signal_emit
    at gsignal.c line 3384
  • #32 gtk_widget_show
    at gtkwidget.c line 4169
  • #33 g_closure_invoke
    at gclosure.c line 777
  • #34 signal_emit_unlocked_R
    at gsignal.c line 3584
  • #35 g_signal_emit_valist
    at gsignal.c line 3328
  • #36 g_signal_emit
    at gsignal.c line 3384
  • #37 _gtk_action_emit_activate
    at gtkaction.c line 801
  • #38 g_closure_invoke
    at gclosure.c line 777
  • #39 signal_emit_unlocked_R
    at gsignal.c line 3584
  • #40 g_signal_emit_valist
    at gsignal.c line 3328
  • #41 g_signal_emit
    at gsignal.c line 3384
  • #42 _gtk_action_emit_activate
    at gtkaction.c line 801
  • #43 g_closure_invoke
    at gclosure.c line 777
  • #44 signal_emit_unlocked_R
    at gsignal.c line 3514
  • #45 g_signal_emit_valist
    at gsignal.c line 3328
  • #46 g_signal_emit
    at gsignal.c line 3384
  • #47 gtk_widget_activate
    at gtkwidget.c line 6753
  • #48 gtk_menu_shell_activate_item
    at gtkmenushell.c line 1441
  • #49 gtk_menu_shell_button_release
    at gtkmenushell.c line 842
  • #50 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 130
  • #51 _g_closure_invoke_va
    at gclosure.c line 840
  • #52 g_signal_emit_valist
    at gsignal.c line 3234
  • #53 g_signal_emit
    at gsignal.c line 3384
  • #54 gtk_widget_event_internal
    at gtkwidget.c line 6722
  • #55 gtk_widget_event
    at gtkwidget.c line 6379
  • #56 propagate_event_up
    at gtkmain.c line 2393
  • #57 propagate_event
    at gtkmain.c line 2501
  • #58 gtk_main_do_event
    at gtkmain.c line 1716
  • #59 gdk_event_source_dispatch
    at gdkeventsource.c line 364
  • #60 g_main_dispatch
    at gmain.c line 3054
  • #61 g_main_context_dispatch
    at gmain.c line 3630
  • #62 g_main_context_iterate
    at gmain.c line 3701
  • #63 g_main_loop_run
    at gmain.c line 3895
  • #64 gtk_main
    at gtkmain.c line 1156
  • #65 main
    at main.c line 707

Comment 1 Milan Crha 2013-11-18 20:04:34 UTC
Created attachment 260163 [details] [review]
eds patch

for evolution-data-server;

This is not for the crash, but for a changed format of the saved weather location, because it was changed (see below).
Comment 2 Milan Crha 2013-11-18 20:12:23 UTC
Created attachment 260164 [details] [review]
evo patch

for evolution;

Fix the crash by storing latitude and longitude, instead of state code and city name, as a weather location. The problem was that the current code was supposed to save "StationCode/CityName", but the looked-up City didn't have set any StationCode, which means that the saved location string in the ESource was "(null)/City". Restoring this location string lead to NULL 'matched' in cal_config_weather_string_to_location(), thus we passed NULL location to GWeather library, which it doesn't like.

Another issue with storing city name was that the name is localized, and can produce different name when the process is run in a different language. That means that the only correct way of the save is to use latitude and longitute of the place. It also required some changes in eds (see above), but now the calendar actually works, and shows the forecast.
Comment 3 Milan Crha 2013-11-18 20:38:40 UTC
Created commit 063a2bc in eds master (3.11.3+)
Created commit 1db9434 in evo master (3.11.3+)

Created commit b9fe27e in eds gnome-3-10 (3.10.3+)
Created commit 1d5af7d in evo gnome-3-10 (3.10.3+)