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 697304 - Crash on using CHAMPLAIN_MAP_SOURCE_OAM
Crash on using CHAMPLAIN_MAP_SOURCE_OAM
Status: RESOLVED FIXED
Product: libchamplain
Classification: Core
Component: map-sources
unspecified
Other Linux
: Normal normal
: ---
Assigned To: libchamplain-maint
libchamplain-maint
Depends on:
Blocks:
 
 
Reported: 2013-04-05 02:25 UTC by Zeeshan Ali
Modified: 2013-04-08 17:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Add Mapquest Open Aerial map source (4.04 KB, patch)
2013-04-05 14:07 UTC, Zeeshan Ali
committed Details | Review
Drop OAM map source completely (3.68 KB, patch)
2013-04-05 14:07 UTC, Zeeshan Ali
committed Details | Review

Description Zeeshan Ali 2013-04-05 02:25:03 UTC
The following C code:

-----C code-----------
  ClutterActor *actor;
  ChamplainMapSourceFactory *factory;
  ChamplainMapSource *source;

  actor = champlain_view_new ();
  factory = champlain_map_source_factory_dup_default();
  source = champlain_map_source_factory_create_cached_source(factory, CHAMPLAIN_MAP_SOURCE_OAM);
  champlain_view_set_map_source(CHAMPLAIN_VIEW (actor), source);
-----------------------

Crashes for me:

** (animated-marker:31006): CRITICAL **: champlain_map_source_get_tile_size: assertion `CHAMPLAIN_IS_MAP_SOURCE (map_source)' failed

** (animated-marker:31006): CRITICAL **: champlain_map_source_chain_push: assertion `CHAMPLAIN_IS_TILE_SOURCE (map_source)' failed
[New Thread 0x7fffe7d4f700 (LWP 31012)]
[New Thread 0x7fffe754e700 (LWP 31013)]
[New Thread 0x7fffe6d4d700 (LWP 31014)]
[New Thread 0x7fffe654c700 (LWP 31015)]
[New Thread 0x7fffe5d4b700 (LWP 31016)]
[New Thread 0x7fffe554a700 (LWP 31017)]
[New Thread 0x7fffe4d49700 (LWP 31018)]
[New Thread 0x7fffdbfff700 (LWP 31019)]
[New Thread 0x7fffdb7fe700 (LWP 31020)]
[New Thread 0x7fffdaffd700 (LWP 31021)]

(animated-marker:31006): Clutter-WARNING **: Unable to create a context for an image surface of width 0 and height 0. Set the surface size to be at least 1 pixel by 1 pixel.

Program received signal SIGSEGV, Segmentation fault.
INT_cairo_set_source (cr=0x0, source=0x1953c70) at cairo.c:794
794	    if (unlikely (cr->status))
Missing separate debuginfos, use: debuginfo-install libpng-1.5.13-1.fc18.x86_64 libwayland-client-1.0.5-1.fc18.x86_64 libwayland-server-1.0.5-1.fc18.x86_64 systemd-libs-197-1.fc18.2.x86_64 xz-libs-5.1.2-2alpha.fc18.x86_64
(gdb) bt
  • #0 INT_cairo_set_source
    at cairo.c line 794
  • #1 render
    at ./champlain-error-tile-renderer.c line 224
  • #2 champlain_renderer_render
    at ./champlain-renderer.c line 97
  • #3 fill_tile
    at ./champlain-null-tile-source.c line 155
  • #4 champlain_map_source_fill_tile
    at ./champlain-map-source.c line 692
  • #5 tile_rendered_cb
    at ./champlain-file-cache.c line 613
  • #6 _champlain_marshal_VOID__POINTER_UINT_BOOLEAN
    at champlain-marshal.c line 124
  • #7 g_closure_invoke
    at gclosure.c line 777
  • #8 signal_emit_unlocked_R
    at gsignal.c line 3584
  • #9 g_signal_emit_valist
    at gsignal.c line 3328
  • #10 g_signal_emit_by_name
    at gsignal.c line 3424
  • #11 render
    at ./champlain-image-renderer.c line 189
  • #12 champlain_renderer_render
    at ./champlain-renderer.c line 97
  • #13 file_loaded_cb
    at ./champlain-file-cache.c line 665
  • #14 g_task_return_now
    at gtask.c line 1108
  • #15 g_task_return
    at gtask.c line 1161
  • #16 g_task_return_error
    at gtask.c line 1653
  • #17 load_contents_open_callback
    at gfile.c line 6608
  • #18 g_task_return_now
    at gtask.c line 1108
  • #19 complete_in_idle_cb
    at gtask.c line 1117
  • #20 g_idle_dispatch
    at gmain.c line 5205
  • #21 g_main_dispatch
    at gmain.c line 3054
  • #22 g_main_context_dispatch
    at gmain.c line 3630
  • #23 g_main_context_iterate
    at gmain.c line 3701
  • #24 g_main_loop_run
    at gmain.c line 3895
  • #25 clutter_main
    at ./clutter-main.c line 980
  • #26 main
    at animated-marker.c line 169

Comment 1 Zeeshan Ali 2013-04-05 11:55:58 UTC
Apparently, the main cause is https://git.gnome.org/browse/libchamplain/commit/?id=c897259245497520c860f19139c7ae1972c2fd97  as you can see from the backtraces of the criticals and warnings below. So the aerial map was disabled (for totally undocumented reason :() but its still exposed/advertized to apps as something usable. I'll investigate about reasons and see how we can fix this.

** (animated-marker:4039): CRITICAL **: champlain_map_source_get_tile_size: assertion `CHAMPLAIN_IS_MAP_SOURCE (map_source)' failed

Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff57d851a in g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_CRITICAL, 
    format=0x7ffff585fbcc "%s: assertion `%s' failed", args=0x7fffffffd2a8) at gmessages.c:974
974			G_BREAKPOINT ();
Missing separate debuginfos, use: debuginfo-install libpng-1.5.13-1.fc18.x86_64 libwayland-client-1.0.5-1.fc18.x86_64 libwayland-server-1.0.5-1.fc18.x86_64 systemd-libs-197-1.fc18.2.x86_64 xz-libs-5.1.2-2alpha.fc18.x86_64
(gdb) bt
  • #0 g_logv
    at gmessages.c line 974
  • #1 g_log
    at gmessages.c line 1010
  • #2 g_return_if_fail_warning
  • #3 champlain_map_source_get_tile_size
    at ./champlain-map-source.c line 457
  • #4 champlain_map_source_factory_create_cached_source
    at ./champlain-map-source-factory.c line 383
  • #5 main
    at animated-marker.c line 142
  • #0 g_logv
    at gmessages.c line 974
  • #1 g_log
    at gmessages.c line 1010
  • #2 g_return_if_fail_warning
  • #3 champlain_map_source_chain_push
    at ./champlain-map-source-chain.c line 307
  • #4 champlain_map_source_factory_create_cached_source
    at ./champlain-map-source-factory.c line 394
  • #5 main
    at animated-marker.c line 142
  • #0 g_logv
    at gmessages.c line 974
  • #1 g_log
    at gmessages.c line 1010
  • #2 clutter_cairo_texture_create_region_internal
    at ./deprecated/clutter-cairo-texture.c line 807
  • #3 clutter_cairo_texture_create
    at ./deprecated/clutter-cairo-texture.c line 994
  • #4 render
    at ./champlain-error-tile-renderer.c line 218
  • #5 champlain_renderer_render
    at ./champlain-renderer.c line 97
  • #6 fill_tile
    at ./champlain-null-tile-source.c line 155
  • #7 champlain_map_source_fill_tile
    at ./champlain-map-source.c line 692
  • #8 tile_rendered_cb
    at ./champlain-file-cache.c line 613
  • #9 _champlain_marshal_VOID__POINTER_UINT_BOOLEAN
    at champlain-marshal.c line 124
  • #10 g_closure_invoke
    at gclosure.c line 777
  • #11 signal_emit_unlocked_R
    at gsignal.c line 3584
  • #12 g_signal_emit_valist
    at gsignal.c line 3328
  • #13 g_signal_emit_by_name
    at gsignal.c line 3424
  • #14 render
    at ./champlain-image-renderer.c line 189
  • #15 champlain_renderer_render
    at ./champlain-renderer.c line 97
  • #16 file_loaded_cb
    at ./champlain-file-cache.c line 665
  • #17 g_task_return_now
    at gtask.c line 1108
  • #18 g_task_return
    at gtask.c line 1161
  • #19 g_task_return_error
    at gtask.c line 1653
  • #20 load_contents_open_callback
    at gfile.c line 6608
  • #21 g_task_return_now
    at gtask.c line 1108
  • #22 complete_in_idle_cb
    at gtask.c line 1117
  • #23 g_idle_dispatch
    at gmain.c line 5205
  • #24 g_main_dispatch
    at gmain.c line 3054
  • #25 g_main_context_dispatch
    at gmain.c line 3630
  • #26 g_main_context_iterate
    at gmain.c line 3701
  • #27 g_main_loop_run
    at gmain.c line 3895
  • #28 clutter_main
    at ./clutter-main.c line 980
  • #29 main
    at animated-marker.c line 169

Comment 2 Zeeshan Ali 2013-04-05 14:07:32 UTC
Created attachment 240746 [details] [review]
Add Mapquest Open Aerial map source

Seems after the demise of OAM, this is the only usable and open service
of aerial tiles.
Comment 3 Zeeshan Ali 2013-04-05 14:07:36 UTC
Created attachment 240747 [details] [review]
Drop OAM map source completely

OAM has been offline for quite a while now and the code to register this
source was already disabled in commit c89725924 a while back. Any
application that tries to use it ends-up crashing. Better remove all
support for it already. Since the using apps are crashing anyways, there
is no real API/ABI break involved here.

I already added an alternative aerial source in the previous commit so
application can use that instead.
Comment 4 Jiri Techet 2013-04-08 16:16:59 UTC
Applied, thanks.