#1695: Segmentation fault when calling .finish on unopend postgres connection
---------------------+------------------------------------------------------
 Reporter:  moritz   |       Owner:       
     Type:  bug      |      Status:  new  
 Priority:  normal   |   Milestone:       
Component:  library  |     Version:  2.5.0
 Severity:  medium   |    Keywords:       
     Lang:           |       Patch:       
 Platform:           |  
---------------------+------------------------------------------------------
 {{{
 .HLL 'perl6'
 .sub main :main
     load_bytecode 'Pg.pir'
     $P0 = new 'Pg'
     $P1 = $P0.'connectdb'('username=fantasy password=values')
     $I0 = $P1.'status'()
     say $I0
     $P1.'finish'()
 .end
 }}}

 The fantasy connection parameters cause the connect to fail, and then
 calling the finish method results in hilarity:

 {{{
 (gdb) run foo.pir
 Starting program: /nocrypt-
 home/moritz/source/rakudo/parrot_install/bin/parrot foo.pir
 [Thread debugging using libthread_db enabled]
 warning: Lowest section in /usr/lib/libicudata.so.36 is .hash at
 0000000000000120
 [New Thread 0x7fe533a146f0 (LWP 8529)]
 12319936
 *** glibc detected *** /nocrypt-
 home/moritz/source/rakudo/parrot_install/bin/parrot: free(): invalid
 pointer: 0x0000000000c54958 ***
 ======= Backtrace: =========
 /lib/libc.so.6[0x7fe5315039a8]
 /lib/libc.so.6(cfree+0x76)[0x7fe531505ab6]
 /lib/libc.so.6(freeaddrinfo+0x28)[0x7fe531547f88]
 /usr/lib/libpq.so[0x7fe530b119bd]
 /usr/lib/libpq.so(PQfinish+0xe)[0x7fe530b11b3e]
 /home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0[0x7fe5334bbd48]
 /home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0[0x7fe5334f92c1]
 /home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0[0x7fe5334d5931]
 /home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0[0x7fe5334d4ead]
 /home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0[0x7fe5334ac45c]
 
/home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0(Parrot_pcc_invoke_from_sig_object+0x101)[0x7fe5334a83a1]
 
/home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0(Parrot_pcc_invoke_sub_from_c_args+0xeb)[0x7fe5334a849b]
 /nocrypt-home/moritz/source/rakudo/parrot_install/bin/parrot[0x40185e]
 /lib/libc.so.6(__libc_start_main+0xe6)[0x7fe5314ae1a6]
 /nocrypt-home/moritz/source/rakudo/parrot_install/bin/parrot[0x4011c9]
 ======= Memory map: ========
 00400000-00409000 r-xp 00000000 08:07 10078770
 /nocrypt-home/moritz/source/rakudo/parrot_install/bin/parrot
 00609000-0060a000 rw-p 00009000 08:07 10078770
 /nocrypt-home/moritz/source/rakudo/parrot_install/bin/parrot
 00b25000-00c9d000 rw-p 00000000 00:00 0
 [heap]
 7fe528000000-7fe528021000 rw-p 00000000 00:00 0
 7fe528021000-7fe52c000000 ---p 00000000 00:00 0
 7fe52e654000-7fe52e6b9000 r-xp 00000000 08:01 398415
 /usr/lib/libgcrypt.so.11.4.4
 7fe52e6b9000-7fe52e8b8000 ---p 00065000 08:01 398415
 /usr/lib/libgcrypt.so.11.4.4
 7fe52e8b8000-7fe52e8bb000 rw-p 00064000 08:01 398415
 /usr/lib/libgcrypt.so.11.4.4
 7fe52e8bb000-7fe52e8ca000 r-xp 00000000 08:01 398445
 /usr/lib/libtasn1.so.3.0.15
 7fe52e8ca000-7fe52eaca000 ---p 0000f000 08:01 398445
 /usr/lib/libtasn1.so.3.0.15
 7fe52eaca000-7fe52eacb000 rw-p 0000f000 08:01 398445
 /usr/lib/libtasn1.so.3.0.15
 7fe52eacb000-7fe52eb72000 r-xp 00000000 08:01 402186
 /usr/lib/libgnutls.so.26.4.6
 7fe52eb72000-7fe52ed72000 ---p 000a7000 08:01 402186
 /usr/lib/libgnutls.so.26.4.6
 7fe52ed72000-7fe52ed7d000 rw-p 000a7000 08:01 402186
 /usr/lib/libgnutls.so.26.4.6
 7fe52ed7d000-7fe52ed96000 r-xp 00000000 08:01 397607
 /usr/lib/libsasl2.so.2.0.22
 7fe52ed96000-7fe52ef96000 ---p 00019000 08:01 397607
 /usr/lib/libsasl2.so.2.0.22
 7fe52ef96000-7fe52ef97000 rw-p 00019000 08:01 397607
 /usr/lib/libsasl2.so.2.0.22
 7fe52ef97000-7fe52efa5000 r-xp 00000000 08:01 398439
 /usr/lib/liblber-2.4.so.2.1.0
 7fe52efa5000-7fe52f1a5000 ---p 0000e000 08:01 398439
 /usr/lib/liblber-2.4.so.2.1.0
 7fe52f1a5000-7fe52f1a6000 rw-p 0000e000 08:01 398439
 /usr/lib/liblber-2.4.so.2.1.0
 7fe52f1a6000-7fe52f1b6000 r-xp 00000000 08:01 413433
 /lib/libresolv-2.7.so
 7fe52f1b6000-7fe52f3b6000 ---p 00010000 08:01 413433
 /lib/libresolv-2.7.so
 7fe52f3b6000-7fe52f3b8000 rw-p 00010000 08:01 413433
 /lib/libresolv-2.7.so
 7fe52f3b8000-7fe52f3ba000 rw-p 00000000 00:00 0
 7fe52f3ba000-7fe52f3bc000 r-xp 00000000 08:01 413691
 /lib/libkeyutils-1.2.so
 7fe52f3bc000-7fe52f5bb000 ---p 00002000 08:01 413691
 /lib/libkeyutils-1.2.so
 7fe52f5bb000-7fe52f5bc000 rw-p 00001000 08:01 413691
 /lib/libkeyutils-1.2.so
 7fe52f5bc000-7fe52f5c3000 r-xp 00000000 08:01 396932
 /usr/lib/libkrb5support.so.0.1
 7fe52f5c3000-7fe52f7c3000 ---p 00007000 08:01 396932
 /usr/lib/libkrb5support.so.0.1
 7fe52f7c3000-7fe52f7c4000 rw-p 00007000 08:01 396932
 /usr/lib/libkrb5support.so.0.1
 7fe52f7c4000-7fe52f7e8000 r-xp 00000000 08:01 397242
 /usr/lib/libk5crypto.so.3.1
 7fe52f7e8000-7fe52f9e8000 ---p 00024000 08:01 397242
 /usr/lib/libk5crypto.so.3.1
 7fe52f9e8000-7fe52f9ea000 rw-p 00024000 08:01 397242
 /usr/lib/libk5crypto.so.3.1
 7fe52f9ea000-7fe52fa00000 r-xp 00000000 08:01 397696
 /usr/lib/libz.so.1.2.3.3
 7fe52fa00000-7fe52fc00000 ---p 00016000 08:01 397696
 /usr/lib/libz.so.1.2.3.3
 7fe52fc00000-7fe52fc01000 rw-p 00016000 08:01 397696
 /usr/lib/libz.so.1.2.3.3
 7fe52fc01000-7fe52fc46000 r-xp 00000000 08:01 402194
 /usr/lib/libldap_r-2.4.so.2.1.0
 7fe52fc46000-7fe52fe45000 ---p 00045000 08:01 402194
 /usr/lib/libldap_r-2.4.so.2.1.0
 7fe52fe45000-7fe52fe48000 rw-p 00044000 08:01 402194
 /usr/lib/libldap_r-2.4.so.2.1.0
 7fe52fe48000-7fe52fe4a000 rw-p 00000000 00:00 0
 7fe52fe4a000-7fe52fe75000 r-xp 00000000 08:01 396916
 /usr/lib/libgssapi_krb5.so.2.2
 7fe52fe75000-7fe530074000 ---p 0002b000 08:01 396916
 /usr/lib/libgssapi_krb5.so.2.2
 7fe530074000-7fe530076000 rw-p 0002a000 08:01 396916
 /usr/lib/libgssapi_krb5.so.2.2
 7fe530076000-7fe530079000 r-xp 00000000 08:01 411320
 /lib/libcom_err.so.2.1
 7fe530079000-7fe530278000 ---p 00003000 08:01 411320
 /lib/libcom_err.so.2.1
 7fe530278000-7fe530279000 rw-p 00002000 08:01 411320
 /li
 Program received signal SIGABRT, Aborted.
 [Switching to Thread 0x7fe533a146f0 (LWP 8529)]
 0x00007fe5314c1ed5 in raise () from /lib/libc.so.6
 }}}



 {{{
 (gdb) bt
 #0  0x00007fe5314c1ed5 in raise () from /lib/libc.so.6
 #1  0x00007fe5314c33f3 in abort () from /lib/libc.so.6
 #2  0x00007fe5314fe408 in ?? () from /lib/libc.so.6
 #3  0x00007fe5315039a8 in ?? () from /lib/libc.so.6
 #4  0x00007fe531505ab6 in free () from /lib/libc.so.6
 #5  0x00007fe531547f88 in freeaddrinfo () from /lib/libc.so.6
 #6  0x00007fe530b119bd in ?? () from /usr/lib/libpq.so
 #7  0x00007fe530b11b3e in PQfinish () from /usr/lib/libpq.so
 #8  0x00007fe5334bbd48 in pcf_v_p (interp=0xb25080, nci=<value optimized
 out>, self_unused=<value optimized out>)
     at src/nci/extra_thunks.c:375
 #9  0x00007fe5334f92c1 in Parrot_NCI_invoke (interp=0xb25080,
 _self=0xc69e00, next=0xc82650) at ./src/pmc/nci.pmc:379
 #10 0x00007fe5334d5931 in runops_slow_core (interp=0xb25080,
 runcore_unused=<value optimized out>, pc=0xc82640)
     at src/runcore/cores.c:647
 #11 0x00007fe5334d4ead in runops_int (interp=0xb25080, offset=0) at
 src/runcore/main.c:237
 #12 0x00007fe5334ac45c in runops (interp=0xb25080, offs=<value optimized
 out>) at src/call/ops.c:127
 #13 0x00007fe5334a83a1 in Parrot_pcc_invoke_from_sig_object
 (interp=0xb25080, sub_obj=0xbb6520, call_object=<value optimized out>)
     at src/call/pcc.c:366
 #14 0x00007fe5334a849b in Parrot_pcc_invoke_sub_from_c_args
 (interp=0xb25080, sub_obj=0xbb6520, sig=<value optimized out>)
     at src/call/pcc.c:87
 #15 0x000000000040185e in main (argc=1, argv=0x7fffe5973048) at
 src/main.c:149
 }}}

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1695>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to