> @Zixing, thank you for the patch, could you give some explanation about your understanding of the issue and how is the patch addressing the problem?
I could not reproduce the issue because I encountered another problem (unable to launch `debconf-communicate`) while reproducing the issue described in this bug report. So, instead, I analyzed the re-tracer output: The code tried to access the `error` variable (a NULL address according to the stack trace). Unfortunately, the `status` variable was "<optimized out>", but we can still try to recover its value. There is also an unfortunate design problem with the reporter bot. It does not disassemble the code segment before the program counter (%pc register), so we must disassemble the binary ourselves to hopefully see where the return value went. 0x00007ffff7f72292 <+242>: mov -0x438(%rbp),%rdx 0x00007ffff7f72299 <+249>: lea -0x440(%rbp),%rcx 0x00007ffff7f722a0 <+256>: call 0x7ffff7f64ad0 <g_io_channel_write_chars@plt> [0]0x00007ffff7f722a5 <+261>: cmp $0x1,%eax [1]0x00007ffff7f722a8 <+264>: jne 0x7ffff7f72300 <pk_client_helper_copy_stdout_cb+352> 0x00007ffff7f722aa <+266>: mov -0x440(%rbp),%r8 0x00007ffff7f722b1 <+273>: mov -0x438(%rbp),%rcx 0x00007ffff7f722b8 <+280>: cmp %rcx,%r8 0x00007ffff7f722bb <+283>: je 0x7ffff7f722e0 <pk_client_helper_copy_stdout_cb+320> 0x00007ffff7f722bd <+285>: lea 0x2aa0c(%rip),%rdx # 0x7ffff7f9ccd0 0x00007ffff7f722c4 <+292>: mov $0x10,%esi 0x00007ffff7f722c9 <+297>: mov %r14,%rdi 0x00007ffff7f722cc <+300>: xor %eax,%eax 0x00007ffff7f722ce <+302>: call 0x7ffff7f65570 <g_log@plt> 0x00007ffff7f722d3 <+307>: xor %ebx,%ebx 0x00007ffff7f722d5 <+309>: jmp 0x7ffff7f72228 <pk_client_helper_copy_stdout_cb+136> 0x00007ffff7f722da <+314>: nopw 0x0(%rax,%rax,1) 0x00007ffff7f722e0 <+320>: mov %r8,%rcx 0x00007ffff7f722e3 <+323>: lea 0x27ceb(%rip),%rdx # 0x7ffff7f99fd5 0x00007ffff7f722ea <+330>: mov %r14,%rdi 0x00007ffff7f722ed <+333>: xor %eax,%eax 0x00007ffff7f722ef <+335>: mov $0x80,%esi 0x00007ffff7f722f4 <+340>: call 0x7ffff7f65570 <g_log@plt> 0x00007ffff7f722f9 <+345>: jmp 0x7ffff7f72223 <pk_client_helper_copy_stdout_cb+131> 0x00007ffff7f722fe <+350>: xchg %ax,%ax [2]0x00007ffff7f72300 <+352>: mov -0x448(%rbp),%rax 0x00007ffff7f72307 <+359>: lea 0x27ca9(%rip),%rdx # 0x7ffff7f99fb7 0x00007ffff7f7230e <+366>: mov %r14,%rdi 0x00007ffff7f72311 <+369>: xor %ebx,%ebx 0x00007ffff7f72313 <+371>: mov $0x10,%esi => 0x00007ffff7f72318 <+376>: mov 0x8(%rax),%rcx 0x00007ffff7f7231c <+380>: xor %eax,%eax The comparison with G_IO_STATUS_NORMAL (with an integer value of `1`) is made in location [0]; we can be sure that the conditional jump at [1] did not happen, so the control flow must go straight down. The load that happened in [2] has overwritten our return value, so, indeed, we can't see it. However, we can still make an educated guess about what happened after the I/O write operation. You can look at https://docs.gtk.org/glib/enum.IOStatus.html; apparently, "EOF" and "AGAIN" are not handled in this case. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2081604 Title: pk-debconf-helper crashed with SIGSEGV in pk_client_helper_copy_stdout_cb() To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/packagekit/+bug/2081604/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs