GerbView freezes after startup

Hi, when i open GerbView it hangs for a minute or so and is unresponsive. After a minute it becomes reponsive but as soon as i try to open a single gerber file it is again for a minute unresponsive. After the second freeze is over everything runs soomthly, i can use GerbView normally and everthing seems fine.
I do not see the GerbView window resizing crash even though my plaftorm is based upon Ubuntu 16.04.

Could be another issue. For me its not something that has a high imapct on productivity (i just let gerbView run in the background and never start it), but maybe i should file a bug report. Do you obverve similar behavior?

FYI, finished my first PCB with the new KiCAD, but am very pleased with it. :slight_smile:

(kicad 4.0.3+e1-6302, linux mint 18)

Freezing that recovers sounds like the software is trying to find something missing and there is a timeout.
I had a freeze on 4.0.3 Windows 64 in the footprint editor, but then KiCad closed completely, so that was a crash

I have one 4.0.3 on Ubuntu 64 PC and cannot reproduce this delay

Hi, thank you for your answer. That was a good idea that the issue might be caused by a timeout. So i did a strace to see what recources are being accessed.

$ strace -e trace=open,read gerbview

But there was nothing. I could not see any attempts of accessing missing files. Also during the freeze gerbview utilizes one CPU core at 100%, which would imply some sort of polling.

So i attached myself with GDB to the gerbview process and looked at the backtrace of gerbview while it is hanging:

(gdb) bt
#0 0x00007f70dc8c154b in g_slice_free_chain_with_offset ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1 0x00007f70d5bcd197 in ?? ()
from /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so
#2 0x00007f70d5be7409 in ?? ()
from /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so
#3 0x00007f70d558cfd8 in ?? ()
from /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0
#4 0x00007f70d558d1de in ?? ()
from /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0
#5 0x00007f70dcb7e0a7 in g_cclosure_marshal_VOID__OBJECTv ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00007f70dcb7b1d4 in ?? ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007f70dcb959a6 in g_signal_emit_valist ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8 0x00007f70dcb9608f in g_signal_emit ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9 0x00007f70d55830ac in ?? ()
from /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0
#10 0x00007f70dc8a405a in g_main_context_dispatch ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f70dc8a4400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
—Type to continue, or q to quit—
#12 0x00007f70dc8a4722 in g_main_loop_run ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007f70dd6116a7 in gtk_main ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#14 0x00007f70df0abed5 in wxGUIEventLoop::DoRun() ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0
#15 0x00007f70dea55343 in wxEventLoopBase::Run() ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#16 0x00007f70dea1a666 in wxAppConsoleBase::MainLoop() ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#17 0x00000000004246d9 in ?? ()
#18 0x00007f70deaa6f50 in wxEntry(int&, wchar_t**) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#19 0x000000000041d55e in ?? ()
#20 0x00007f70ddb4c830 in __libc_start_main (main=0x41d530, argc=1,
argv=0x7ffd8a0d9318, init=, fini=,
rtld_fini=, stack_end=0x7ffd8a0d9308)
at …/csu/libc-start.c:291
#21 0x00000000004209c9 in _start ()

Not sure yet, what to make of it. The freeze up seems to be occuring in the in the wxwidget gui library kicad uses. The issue might not be related to gerbview/kicad, but to the wxwidget/gtk libraries.

Here is the backtrace of the second freeze up when trying to open the first gerberfile (i dont have the symbols loaded). It seems to hang in a similar place.

#0 0x00007f02b9dae441 in g_slice_free_chain_with_offset ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1 0x00007f02b30ba197 in ?? ()
from /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so
#2 0x00007f02b30d4409 in ?? ()
from /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so
#3 0x00007f02b2a79fd8 in ?? ()
from /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0
#4 0x00007f02b9d80340 in g_hash_table_foreach ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007f02b2a7a2d0 in ?? ()
from /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0
#6 0x00007f02b2a7756a in ?? ()
from /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0
#7 0x00007f02b260b813 in ?? () from /lib/x86_64-linux-gnu/libdbus-1.so.3
#8 0x00007f02b25fcd94 in dbus_connection_dispatch ()
from /lib/x86_64-linux-gnu/libdbus-1.so.3
#9 0x00007f02b28446e5 in ?? () from /usr/lib/x86_64-linux-gnu/libatspi.so.0
#10 0x00007f02b9d911a7 in g_main_context_dispatch ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f02b9d91400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007f02b9d91722 in g_main_loop_run ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
—Type to continue, or q to quit—
#13 0x00007f02baafe6a7 in gtk_main ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#14 0x00007f02bc598ed5 in wxGUIEventLoop::DoRun() ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0
#15 0x00007f02bbf42343 in wxEventLoopBase::Run() ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#16 0x00007f02bc61bcdd in wxDialog::ShowModal() ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0
#17 0x00007f02bc6200d0 in wxFileDialog::ShowModal() ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0
#18 0x00007f02b10d9269 in ?? () from /usr/bin/_gerbview.kiface
#19 0x00007f02b10db666 in ?? () from /usr/bin/_gerbview.kiface
#20 0x00007f02bbf001fe in wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#21 0x00007f02bc0866c7 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#22 0x00007f02bc0867bb in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#23 0x00007f02bc086b6b in wxEvtHandler::TryHereOnly(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#24 0x00007f02b1138fbb in ?? () from /usr/bin/_gerbview.kiface
—Type to continue, or q to quit—
#25 0x00007f02bc086973 in wxEvtHandler::DoTryChain(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#26 0x00007f02bc086c55 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#27 0x00007f02bc7add08 in wxWindowBase::TryAfter(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0
#28 0x00007f02b0dd2a08 in wxAuiToolBar::OnLeftUp(wxMouseEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_aui-3.0.so.0
#29 0x00007f02bbf001fe in wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#30 0x00007f02bc0866c7 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#31 0x00007f02bc0867bb in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#32 0x00007f02bc086b6b in wxEvtHandler::TryHereOnly(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#33 0x00007f02bc086bf3 in wxEvtHandler::ProcessEventLocally(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#34 0x00007f02bc086c55 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#35 0x00007f02bc0869c7 in wxEvtHandler::SafelyProcessEvent(wxEvent&) ()
—Type to continue, or q to quit—
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#36 0x00007f02bc5c71cb in ?? ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0
#37 0x00007f02bab00afc in ?? ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#38 0x00007f02ba067fa5 in g_closure_invoke ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#39 0x00007f02ba079fc1 in ?? ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#40 0x00007f02ba0827f9 in g_signal_emit_valist ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#41 0x00007f02ba08308f in g_signal_emit ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#42 0x00007f02bac188cc in ?? ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#43 0x00007f02baaff294 in gtk_propagate_event ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#44 0x00007f02baaff64b in gtk_main_do_event ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#45 0x00007f02ba773c4c in ?? ()
from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#46 0x00007f02b9d911a7 in g_main_context_dispatch ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
—Type to continue, or q to quit—
#47 0x00007f02b9d91400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007f02b9d91722 in g_main_loop_run ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x00007f02baafe6a7 in gtk_main ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#50 0x00007f02bc598ed5 in wxGUIEventLoop::DoRun() ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0
#51 0x00007f02bbf42343 in wxEventLoopBase::Run() ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#52 0x00007f02bbf07666 in wxAppConsoleBase::MainLoop() ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#53 0x00000000004246d9 in ?? ()
#54 0x00007f02bbf93f50 in wxEntry(int&, wchar_t**) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#55 0x000000000041d55e in ?? ()
#56 0x00007f02bb039830 in __libc_start_main (main=0x41d530, argc=1,
argv=0x7fffe63ac658, init=, fini=,
rtld_fini=, stack_end=0x7fffe63ac648)
at …/csu/libc-start.c:291
#57 0x00000000004209c9 in _start ()

I suggest you register this bug on launchpad, I don’t have a Mint machine.