pcb

GLpcb crashes sometimes when zooming around

Bug #699281 reported by denis_g
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
pcb
Won't Fix
High
Unassigned

Bug Description

Pcb from pcjc2's GL PCB branch, checked out with

git fetch
git checkout master
git branch -D before_pours
git checkout -b before_pours origin/before_pours

compiled on Feb 14 2009 at 16:13:12

crashes sometimes when zooming around. It is a little bit difficult to reproduce. It mostly happens after moving a via that clears a polygon and then zooming in or out by a large amount. The board where I can reproduce this behaviour is attached.

gdb output follows:

Starting program: /usr/bin/pcb
[Thread debugging using libthread_db enabled]
[New Thread 0xb715f710 (LWP 23865)]
Loading file /mnt/UNI/Vorlesungen/Grundstudium/MES2/mecha-proj/el/schemes/flat/layout.pcb took 0.250000

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb715f710 (LWP 23865)]
0x080b2a56 in M_POLYAREA_intersect (e=0xbfeb9980, afst=0x8a7c360, bfst=0x84e8770, add=1) at polygon1.c:874
874 if (a->contours->xmax >= b->contours->xmin &&

(gdb) backtrace
#0 0x080b2a56 in M_POLYAREA_intersect (e=0xbfeb9980, afst=0x8a7c360, bfst=0x84e8770, add=1) at polygon1.c:874
#1 0x080b461e in poly_AndSubtract_free (ai=0x8a7c360, bi=0x84e8770, aandb=0xbfeb9b0c, aminusb=0xbfeb9b08) at polygon1.c:2474
#2 0x080ae738 in r_NoHolesPolygonDicer (pa=0x8a7c360, emit=0x8088290 <DrawPolygonLowLevel>, user_data=0x0) at polygon.c:1596
#3 0x080ae76b in r_NoHolesPolygonDicer (pa=0x87f99c0, emit=0x8088290 <DrawPolygonLowLevel>, user_data=0x0) at polygon.c:1621
#4 0x080ae76b in r_NoHolesPolygonDicer (pa=0x8aa4558, emit=0x8088290 <DrawPolygonLowLevel>, user_data=0x0) at polygon.c:1621
#5 0x080ae76b in r_NoHolesPolygonDicer (pa=0x87f99f8, emit=0x8088290 <DrawPolygonLowLevel>, user_data=0x0) at polygon.c:1621
#6 0x080ae8fe in NoHolesPolygonDicer (p=0xbfeb9e70, emit=0x8088290 <DrawPolygonLowLevel>, user_data=0x0, clip=0xbfeba0cc)
    at polygon.c:1659
#7 0x080885b4 in poly_callback (b=0x85ed5b8, cl=0xbfeb9f54) at draw.c:2212
#8 0x080c4cd0 in __r_search (node=0x85ed818, query=0xbfeba0cc, arg=0xbfeb9efc) at rtree.c:539
#9 0x080c4d6d in r_search (rtree=0x86e0fc0, query=0x0, check_region=0, found_rectangle=0x80884f0 <poly_callback>, cl=0xbfeb9f54)
    at rtree.c:625
#10 0x080881bb in DrawLayerGroup (group=<value optimized out>, screen=0xbfeba0cc) at draw.c:947
#11 0x0808ac77 in hid_expose_callback (hid=0x812a600, region=0xbfeba0cc, item=0x0) at draw.c:443
#12 0x080ea4ac in ghid_port_drawing_area_expose_event_cb (widget=0x82e0718, ev=0xbfeba4b0, port=0x81689a0)
    at hid/gtk/gui-output-events.c:1076
#13 0xb7cec3a6 in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0
#14 0xb78bfbe3 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#15 0xb78d3e5d in signal_emit_unlocked_R () from /usr/lib/libgobject-2.0.so.0
#16 0xb78d51eb in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#17 0xb78d57d6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#18 0xb7e00f6e in gtk_widget_event_internal () from /usr/lib/libgtk-x11-2.0.so.0
#19 0xb7ce62ab in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#20 0xb7b6770d in gdk_window_process_updates_internal () from /usr/lib/libgdk-x11-2.0.so.0
#21 0xb7b67d1f in gdk_window_process_all_updates () from /usr/lib/libgdk-x11-2.0.so.0
#22 0xb7b67d4b in gdk_window_update_idle () from /usr/lib/libgdk-x11-2.0.so.0
#23 0xb7b4b47b in gdk_threads_dispatch () from /usr/lib/libgdk-x11-2.0.so.0
#24 0xb78343b1 in g_idle_dispatch () from /usr/lib/libglib-2.0.so.0
#25 0xb7836311 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#26 0xb78399a3 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#27 0xb7839ec2 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#28 0xb7ce6729 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#29 0x080f22bd in ghid_do_export (options=0x0) at hid/gtk/gui-top-window.c:2751
#30 0x0809e7d1 in main (argc=74039, argv=0x205e5) at main.c:1035

Tags: sf-bugs
Revision history for this message
denis_g (denis-g) wrote :
Revision history for this message
denis_g (denis-g) wrote :

I'v tried an old pcb (20081128) and it crashes too.

Revision history for this message
Peter Clifton (pcjc2) wrote :

You installed the new PCB in /usr/bin ? or has gdb picked up the wrong PCB executable?

I'm looking at the backtrace, and it suggests to me that you're not running the most up to date PCB+GL code, since for a little while now, the "no-holes" dicer hasn't been used (in the normal rendering path).

Since this is hard to reproduce, it will be difficult to tell if the bug is fixed or not, but the symptom could suggest that 1) I didn't fix the no-holes dicer right when I reworked the code to speed-up polygon rendering.
2) Inconsistent polygon data caused by anohter bug (possibly one just fixed) was causing the dicer to blow up.

Revision history for this message
Peter Clifton (pcjc2) wrote :

I take that back.. you have the "fullpoly" flag set on your main polygon, and that hits an old, perhaps somewhat untested (and definately slow) rendering path, which does include the polygon dicer.

I suspect you don't really want the "fullpoly" flag on, as it breaks the connectivity checking.

I'm also curious how you got the flag set, as on my current build of PCB, the GUI item "Settings->New polygons are full ones" doesn't actually do anything.

Revision history for this message
nobody (nobody-users) wrote :

If you just draw polygon or rectangle and zoom in above it, PCB will crash.
I use version 20081128.

I also found minor issue that when you zoom in empty board (or elsewhere above polygon), at some point view jumps to point 0,0 (upper left corner). That's OK, but when you zoom out again to the full view, scrollbars are not redrawn.

Revision history for this message
Traumflug (mah-jump-ing) wrote :

OpenGL support is now in mainline. Is this still an issue?

Changed in pcb:
importance: Undecided → High
status: New → Incomplete
Traumflug (mah-jump-ing)
Changed in geda-project:
importance: Undecided → Critical
status: New → Fix Released
Revision history for this message
Bert Timmerman (bert-timmerman) wrote :

Hi,

I'm setting this one to "won't fix".

If this bug shows up again, file a new bug report please.

Kind regards,

Bert Timmerman.

Changed in pcb:
status: Incomplete → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.