Bug 6363 - urpme crashes in librpm when uninstalling several kernel packages
: urpme crashes in librpm when uninstalling several kernel packages
Status: CONFIRMED
Product: Desktop Bugs
Classification: ROSA Desktop
Component: Main Packages
: Fresh
: All Linux
: Normal normal
: ---
Assigned To: ROSA Linux Bugs
: ROSA Linux Bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2015-11-22 21:19 MSK by Eugene Shatokhin
Modified: 2015-11-22 21:22 MSK (History)
1 user (show)

See Also:
RPM Package:
ISO-related:
Bad POT generating:
Upstream:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eugene Shatokhin 2015-11-22 21:19:58 MSK
Hardware, packages, etc.: http://hw.rosalinux.ru/index.php?probe=e54d7f9ff5

The following command crashes each time with segmentation fault in librpm:

urpme kernel-nrj-desktop-3.10.27-84rosa-debuginfo-1-1-rosa2012.1.x86_64 kernel-nrj-desktop-devel-3.14.33-1rosa-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-3.14.33-1rosa-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-devel-3.14.39-4rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-3.14.39-4rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-devel-3.14.44-2rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-3.14.44-2rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-devel-4.1.7-1rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-4.1.7-1rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-devel-4.1.8-1rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-4.1.8-1rosa-x86_64-1-1-rosa2014.1.x86_64

However, if I execute urpme twice, first without the two last packages and then for these only, urpme works fine each time.

Might have something to do with the length of the command line and/or the list of packages to process, I guess.

From GDB log:
-----------------------------
Starting program: /usr/bin/perl /usr/sbin/urpme kernel-nrj-desktop-3.10.27-84rosa-debuginfo-1-1-rosa2012.1.x86_64 kernel-nrj-desktop-devel-3.14.33-1rosa-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-3.14.33-1rosa-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-devel-3.14.39-4rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-3.14.39-4rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-devel-3.14.44-2rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-3.14.44-2rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-devel-4.1.7-1rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-4.1.7-1rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-devel-4.1.8-1rosa-x86_64-1-1-rosa2014.1.x86_64 kernel-nrj-desktop-4.1.8-1rosa-x86_64-1-1-rosa2014.1.x86_64

<...>

Detaching after fork from child process 28998.

Program received signal SIGSEGV, Segmentation fault.
runScriptTriggersLoop (psm=psm@entry=0x30d5bc0, tagno=tagno@entry=RPMTAG_BASENAMES, arg2=0) at psm.c:1930
1930	    sourceDs->EVR = memset(alloca(n * sizeof(*sourceDs->EVR)), 0, n * sizeof(*sourceDs->EVR));

(gdb) bt
#0  runScriptTriggersLoop (psm=psm@entry=0x30d5bc0, tagno=tagno@entry=RPMTAG_BASENAMES, arg2=0) at psm.c:1930
#1  0x00007ffff4b6f42a in runScriptTriggers (psm=psm@entry=0x30d5bc0) at psm.c:2058
#2  0x00007ffff4b708a5 in rpmpsmStage (psm=0x30d5bc0, stage=<optimized out>) at psm.c:3398
#3  0x00007ffff4ba02df in rpmtsRunScriptTriggers (ts=0x30d5bc0, stag=RPMTAG_TRIGGERPRETRANSUN) at transaction.c:1382
#4  0x00007ffff4ba114a in _rpmtsRun (ts=0x7fffff7cb1d0, okProbs=0x0, 
    ignoreSet=(RPMPROB_FILTER_REPLACENEWFILES | RPMPROB_FILTER_REPLACEOLDFILES | RPMPROB_FILTER_DISKSPACE | unknown: 859136)) at transaction.c:2308
#5  0x00007ffff500e7dc in XS_URPM__Transaction_run (my_perl=<optimized out>, cv=<optimized out>) at URPM.xs:3299
#6  0x00007ffff7b060bd in Perl_pp_entersub () from /usr/lib64/libperl.so.5.18
#7  0x00007ffff7afe696 in Perl_runops_standard () from /usr/lib64/libperl.so.5.18
#8  0x00007ffff7a96a6e in perl_run () from /usr/lib64/libperl.so.5.18
#9  0x0000000000400d29 in ?? ()
#10 0x00007ffff769ffc0 in __libc_start_main () from /lib64/libc.so.6
#11 0x0000000000400d61 in ?? ()

(gdb) info registers

rax            0x7fffff89ce90	140737480609424
rbx            0x1a396	107414
rcx            0xd1cb0	859312
rdx            0xd1cb0	859312
rsi            0x0	0
rdi            0x7fffff7cb1d0	140737479750096
rbp            0x7fffffffd250	0x7fffffffd250
rsp            0x7fffff7cb1d0	0x7fffff7cb1d0
r8             0x19c5340	27022144
r9             0x6	6
r10            0xf0	240
r11            0xf0	240
r12            0xd1cc0	859328
r13            0x7fffffffd0e0	140737488343264
r14            0x7fffff96eb50	140737481468752
r15            0x7fffffffd290	140737488343696
rip            0x7ffff4b6eebe	0x7ffff4b6eebe <runScriptTriggersLoop+254>
eflags         0x10202	[ IF RF ]
cs             0x33	51
ss             0x2b	43
ds             0x0	0
es             0x0	0
fs             0x0	0
gs             0x0	0

(gdb) info scope runScriptTriggersLoop
Scope for runScriptTriggersLoop:
Symbol psm is multi-location:
  Range 0x7ffff4b6edc0-0x7ffff4b6ee11: a variable in $rdi
  Range 0x7ffff4b6ee11-0x7ffff4b6f201: a complex DWARF expression:
     0: DW_OP_breg6 -72 [$rbp]

  Range 0x7ffff4b6f201-0x7ffff4b6f3c5: a complex DWARF expression:
     0: DW_OP_fbreg -88

, length 8.
Symbol tagno is multi-location:
  Range 0x7ffff4b6edc0-0x7ffff4b6ee36: a variable in $rsi
  Range 0x7ffff4b6ee36-0x7ffff4b6f201: a complex DWARF expression:
     0: DW_OP_breg6 -92 [$rbp]

  Range 0x7ffff4b6f201-0x7ffff4b6f38b: a complex DWARF expression:
     0: DW_OP_fbreg -108

  Range 0x7ffff4b6f38b-0x7ffff4b6f3a8: a variable in $rsi
  Range 0x7ffff4b6f3a8-0x7ffff4b6f3b4: a complex DWARF expression:
     0: DW_OP_fbreg -108

  Range 0x7ffff4b6f3b4-0x7ffff4b6f3c0: a variable in $rsi
  Range 0x7ffff4b6f3c0-0x7ffff4b6f3c5: a complex DWARF expression:
     0: DW_OP_fbreg -108

, length 4.
Symbol ts is multi-location:
  Range 0x7ffff4b6ee0a-0x7ffff4b6ee0c: a variable in $rax
  Range 0x7ffff4b6ee0c-0x7ffff4b6ee11: a complex DWARF expression:
     0: DW_OP_breg5 144 [$rdi]

  Range 0x7ffff4b6ee11-0x7ffff4b6ee50: a complex DWARF expression:
     0: DW_OP_breg6 -72 [$rbp]
     3: DW_OP_deref
     4: DW_OP_plus_uconst 144

  Range 0x7ffff4b6ee50-0x7ffff4b6f201: a complex DWARF expression:
     0: DW_OP_breg6 -104 [$rbp]

  Range 0x7ffff4b6f201-0x7ffff4b6f38b: a complex DWARF expression:
     0: DW_OP_fbreg -120

  Range 0x7ffff4b6f38b-0x7ffff4b6f3a8: a complex DWARF expression:
     0: DW_OP_fbreg -88
     3: DW_OP_deref
     4: DW_OP_plus_uconst 144

  Range 0x7ffff4b6f3a8-0x7ffff4b6f3b4: a complex DWARF expression:
     0: DW_OP_fbreg -120

  Range 0x7ffff4b6f3b4-0x7ffff4b6f3c0: a complex DWARF expression:
     0: DW_OP_fbreg -88
     3: DW_OP_deref
     4: DW_OP_plus_uconst 144

  Range 0x7ffff4b6f3c0-0x7ffff4b6f3c5: a complex DWARF expression:
     0: DW_OP_fbreg -120

, length 8.
Symbol fi is multi-location:
  Range 0x7ffff4b6ee0a-0x7ffff4b6ef06: the constant 0
  Range 0x7ffff4b6f316-0x7ffff4b6f31d: a variable in $rax
  Range 0x7ffff4b6f31d-0x7ffff4b6f324: a variable in $rdi
  Range 0x7ffff4b6f324-0x7ffff4b6f35f: a variable in $r12
  Range 0x7ffff4b6f35f-0x7ffff4b6f363: a variable in $rdi
  Range 0x7ffff4b6f363-0x7ffff4b6f366: a variable in $r12
  Range 0x7ffff4b6f38b-0x7ffff4b6f3a8: the constant 0
  Range 0x7ffff4b6f3b4-0x7ffff4b6f3c0: the constant 0
, length 8.
Symbol sourceDs is optimized out.
Symbol depName is a constant with value 0 (0x0), length 8.
Symbol evr is multi-location:
  Range 0x7ffff4b6ef06-0x7ffff4b6f029: a variable in $r14
  Range 0x7ffff4b6f029-0x7ffff4b6f044: a complex DWARF expression:
     0: DW_OP_breg14 1 [$r14]
     2: DW_OP_stack_value

  Range 0x7ffff4b6f044-0x7ffff4b6f0cc: a variable in $r14
  Range 0x7ffff4b6f309-0x7ffff4b6f366: a variable in $r14
  Range 0x7ffff4b6f376-0x7ffff4b6f37d: a variable in $r14
  Range 0x7ffff4b6f3a8-0x7ffff4b6f3b4: a variable in $r14
, length 8.
Symbol ptr is multi-location:
  Range 0x7ffff4b6ee14-0x7ffff4b6ee54: the constant 0
  Range 0x7ffff4b6ee54-0x7ffff4b6ee57: a variable in $rax
  Range 0x7ffff4b6ee57-0x7ffff4b6ef06: a variable in $r14
  Range 0x7ffff4b6f38b-0x7ffff4b6f3a8: the constant 0
  Range 0x7ffff4b6f3b4-0x7ffff4b6f3c0: the constant 0
, length 8.
Symbol instances is a complex DWARF expression:
     0: DW_OP_fbreg -80
, length 8.
Symbol mi is multi-location:
  Range 0x7ffff4b6f106-0x7ffff4b6f10a: a variable in $rax
  Range 0x7ffff4b6f10a-0x7ffff4b6f1a4: a variable in $rbx
  Range 0x7ffff4b6f202-0x7ffff4b6f220: a variable in $rbx
, length 8.
Symbol triggeredH is multi-location:
  Range 0x7ffff4b6f136-0x7ffff4b6f13f: a variable in $rax
  Range 0x7ffff4b6f13f-0x7ffff4b6f187: a variable in $r15
  Range 0x7ffff4b6f187-0x7ffff4b6f1a3: a variable in $rax
  Range 0x7ffff4b6f1a3-0x7ffff4b6f1dd: a variable in $r15
, length 8.
Symbol rc is multi-location:
  Range 0x7ffff4b6ee14-0x7ffff4b6f0cc: the constant 0
  Range 0x7ffff4b6f0cc-0x7ffff4b6f169: a complex DWARF expression:
     0: DW_OP_breg6 -80 [$rbp]

  Range 0x7ffff4b6f179-0x7ffff4b6f1dd: a complex DWARF expression:
     0: DW_OP_breg6 -80 [$rbp]

  Range 0x7ffff4b6f202-0x7ffff4b6f309: a complex DWARF expression:
     0: DW_OP_fbreg -96

  Range 0x7ffff4b6f309-0x7ffff4b6f366: the constant 0
  Range 0x7ffff4b6f366-0x7ffff4b6f376: a complex DWARF expression:
     0: DW_OP_fbreg -96

  Range 0x7ffff4b6f376-0x7ffff4b6f37d: the constant 0
  Range 0x7ffff4b6f38b-0x7ffff4b6f3c0: the constant 0
, length 4.
Symbol xx is optimized out.
Symbol pi is a variable in $rbx, length 8.
Symbol p is multi-location:
  Range 0x7ffff4b6ee14-0x7ffff4b6ef06: the constant 0
  Range 0x7ffff4b6ef32-0x7ffff4b6ef59: a variable in $rax
  Range 0x7ffff4b6ef59-0x7ffff4b6f050: a variable in $r15
  Range 0x7ffff4b6f050-0x7ffff4b6f05c: a variable in $rax
  Range 0x7ffff4b6f05c-0x7ffff4b6f0cc: a variable in $r15
  Range 0x7ffff4b6f309-0x7ffff4b6f31d: a variable in $r15
  Range 0x7ffff4b6f376-0x7ffff4b6f37d: a variable in $r15
  Range 0x7ffff4b6f38b-0x7ffff4b6f3a8: the constant 0
  Range 0x7ffff4b6f3a8-0x7ffff4b6f3b4: a variable in $r15
  Range 0x7ffff4b6f3b4-0x7ffff4b6f3c0: the constant 0
, length 8.
Symbol n is multi-location:
  Range 0x7ffff4b6ee32-0x7ffff4b6ef06: a variable in $rbx
, length 4.
Symbol arg2 is a constant with value 0 (0x0), length 4.
Symbol scareMem is a constant with value 0 (0x0), length 4.
Symbol __FUNCTION__ is constant bytes:  72 75 6e 53 63 72 69 70 74 54 72 69 67 67 65 72 73 4c 6f 6f 70 00, length 22.
-----------------------------
Comment 1 Eugene Shatokhin 2015-11-22 21:22:08 MSK
(This time adding to CC will hopefully work.)