Segfault in PCBnew while copying plane - KDE
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
Critical
|
Seth Hillbrand |
Bug Description
Unfortunately I cannot share my PCB.
Segfault is reproducible in my case:
1) Mark plane
2) Strg+C
3) Click two times in the area
-> crash
I will append a strace.
I will also try if it works in the nightly and report it here.
Application: kicad
Version: 5.0.1-33cea8e~
Libraries:
wxWidgets 3.0.4
libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Platform: Linux 4.15.0-38-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,
Boost: 1.65.1
OpenCASCADE Community Edition: 6.9.1
Curl: 7.58.0
Compiler: GCC 7.3.0 with C++ ABI 1011
Build settings:
USE_
USE_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_
KICAD_SPICE=ON
-------
write(2, "The program 'kicad' received an "..., 563The program 'kicad' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 89910 error_code 3 request_code 18 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
) = 563
munmap(
munmap(
getpid() = 15464
openat(AT_FDCWD, "/home/
stat("/
chmod("
write(9, "Color4DPCBLaye
close(9) = 0
stat("/
unlink(
rename(
--- SIGSEGV {si_signo=SIGSEGV, si_code=
+++ killed by SIGSEGV (core dumped) +++
[1] 15462 segmentation fault (core dumped) strace kicad
-------
Running it with the suggested sync parameter:
It did not crash as described in the initial report, but after I Strg+V it.
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8, events=
poll([{fd=3, events=
writev(3, [{iov_base=
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=
writev(3, [{iov_base=
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=
writev(3, [{iov_base=
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=
writev(3, [{iov_base=
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=
writev(3, [{iov_base=
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=
writev(3, [{iov_base=
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=
writev(3, [{iov_base=
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=
writev(3, [{iov_base=
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8, events=
poll([{fd=3, events=
writev(3, [{iov_base=
poll([{fd=3, events=
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=
writev(3, [{iov_base=
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=
openat(AT_FDCWD, "/usr/share/
fstat(9, {st_mode=
read(9, "!\n! Copyright 1993, 1995, 1998 "..., 42077) = 42077
close(9) = 0
write(2, "The program 'kicad' received an "..., 564The program 'kicad' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 203667 error_code 3 request_code 18 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
) = 564
munmap(
munmap(
getpid() = 15717
openat(AT_FDCWD, "/home/
stat("/
chmod("
write(9, "Color4DPCBLaye
close(9) = 0
stat("/
unlink(
rename(
--- SIGSEGV {si_signo=SIGSEGV, si_code=
+++ killed by SIGSEGV (core dumped) +++
[1] 15715 segmentation fault (core dumped) strace kicad --sync
I have no idea if the strace part is enough.
Please let me know if you need more informations.
Changed in kicad: | |
milestone: | none → 5.0.2 |
importance: | Undecided → Critical |
Changed in kicad: | |
status: | New → Incomplete |
Changed in kicad: | |
status: | Fix Committed → Fix Released |
Could you recreate this running kicad from within gbd to get a backtrace?
gdb /usr/bin/kicad
I've not been able to reproduce here. We can also exchange board files offline or with a confidentiality agreement if your company requires.