Uploaded image for project: 'CUBRID APIs'
  1. CUBRID APIs
  2. APIS-104

[Perl]A lot of error information appear when just calling cubrid_lob_close once after twice calling cubrid_lob_get()

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: Perl-8.4.1
    • Fix Version/s: None
    • Component/s: Perl Driver
    • Labels:
      None

      Description

      Test Build: CUBRID 2008 R4.1 (8.4.1.1005) (64bit release build for linux_gnu)
      OS: Linux 64
      Description: A lot of error information appear when just calling cubrid_lob_close once after twice calling cubrid_lob_get()

      Repro Steps:
      perl lob_get_2.pl >lob_get.result

      Statements in lob_get_2.pl

      $dbh -> do("drop table if EXISTS doc_t;") or die "drop error: $dbh->errstr";
      $dbh->do("CREATE TABLE doc_t (doc_id VARCHAR(64) PRIMARY KEY, content CLOB);") or die "create error:  $dbh->errstr";
      $dbh->do("INSERT INTO doc_t (doc_id, content) VALUES ('doc-1', CHAR_TO_CLOB('This is a Dog'));") or die "insert error: $dbh->errstr";
      $dbh->do("INSERT INTO doc_t (doc_id, content) VALUES ('doc-2', CHAR_TO_CLOB('This is a Cat'));") or die "insert error: $dbh->errstr";
      
      my $sth=$dbh->prepare("select * from doc_t") or die "prepare error: $dbh->errstr";
      $sth->execute() or die "execute error: $dbh->errstr";
      
      my  $value=$sth->cubrid_lob_get (1) . "\n"; # fetch the second column
      print "value: $value\n";
      print  $dbh->errstr ." :lob_get(0) error\n";
      #my $closeValue=$sth->cubrid_lob_close();
      
      my  $value=$sth->cubrid_lob_get (0) . "\n"; # fetch the second column
      print "value: $value\n";
      print  $dbh->errstr ." :lob_get(0) error\n";
      
      my $closeValue=$sth->cubrid_lob_close();
      print "closeValue: $closeValue\n";
      

      Actual result

      *** glibc detected *** perl: free(): invalid pointer: 0x0000003005b53a48 ***
      ======= Backtrace: =========
      /lib64/libc.so.6[0x300587245f]
      /lib64/libc.so.6(cfree+0x4b)[0x30058728bb]
      /home/perl/CUBRID/lib/libcascci.so.8(cci_clob_free+0x30)[0x2b4f22eed0b0]
      /home/perl/opt/perl5/lib/site_perl/5.14.1/x86_64-linux/auto/DBD/cubrid/cubrid.so[0x2b4f22cdbad6]
      /home/perl/opt/perl5/lib/site_perl/5.14.1/x86_64-linux/auto/DBD/cubrid/cubrid.so[0x2b4f22cdbb24]
      /home/perl/opt/perl5/lib/site_perl/5.14.1/x86_64-linux/auto/DBD/cubrid/cubrid.so(cubrid_st_lob_close+0x5f)[0x2b4f22cdbb9f]
      /home/perl/opt/perl5/lib/site_perl/5.14.1/x86_64-linux/auto/DBD/cubrid/cubrid.so(XS_DBD__cubrid__st_cubrid_lob_close+0x73)[0x2b4f22cd6483]
      /home/perl/opt/perl5/lib/site_perl/5.14.1/x86_64-linux/auto/DBI/DBI.so(XS_DBI_dispatch+0x1bf5)[0x2b4f228c5505]
      perl(Perl_pp_entersub+0x5dc)[0x48c0dc]
      perl(Perl_runops_standard+0x13)[0x48a873]
      perl(perl_run+0x1c6)[0x42fa26]
      perl(main+0xf5)[0x41bfe5]
      /lib64/libc.so.6(__libc_start_main+0xf4)[0x300581d994]
      perl(sin+0xd1)[0x41be39]
      ======= Memory map: ========
      00400000-0053f000 r-xp 00000000 fd:00 90475867                           /home/perl/opt/perl5/bin/perl
      0073e000-00742000 rw-p 0013e000 fd:00 90475867                           /home/perl/opt/perl5/bin/perl
      00742000-00743000 rw-p 00742000 00:00 0 
      00dd3000-0110d000 rw-p 00dd3000 00:00 0                                  [heap]
      3005400000-300541c000 r-xp 00000000 fd:00 1114114                        /lib64/ld-2.5.so
      300561c000-300561d000 r--p 0001c000 fd:00 1114114                        /lib64/ld-2.5.so
      300561d000-300561e000 rw-p 0001d000 fd:00 1114114                        /lib64/ld-2.5.so
      3005800000-300594e000 r-xp 00000000 fd:00 1114121                        /lib64/libc-2.5.so
      300594e000-3005b4e000 ---p 0014e000 fd:00 1114121                        /lib64/libc-2.5.so
      3005b4e000-3005b52000 r--p 0014e000 fd:00 1114121                        /lib64/libc-2.5.so
      3005b52000-3005b53000 rw-p 00152000 fd:00 1114121                        /lib64/libc-2.5.so
      3005b53000-3005b58000 rw-p 3005b53000 00:00 0 
      3005c00000-3005c02000 r-xp 00000000 fd:00 1114131                        /lib64/libdl-2.5.so
      3005c02000-3005e02000 ---p 00002000 fd:00 1114131                        /lib64/libdl-2.5.so
      3005e02000-3005e03000 r--p 00002000 fd:00 1114131                        /lib64/libdl-2.5.so
      3005e03000-3005e04000 rw-p 00003000 fd:00 1114131                        /lib64/libdl-2.5.so
      3006000000-3006016000 r-xp 00000000 fd:00 1114153                        /lib64/libpthread-2.5.so
      
      ........................
      linux/auto/List/Util/Util.so
      2b4f22cd1000-2b4f22cd2000 rw-p 00005000 fd:00 90505557                   /home/perl/opt/perl5/lib/5.14.1/x86_64-linux/auto/List/Util/Util.so
      2b4f22cd2000-2b4f22ce2000 r-xp 00000000 fd:00 90539192                   /home/perl/opt/perl5/lib/site_perl/5.14.1/x86_64-linux/auto/DBD/cubrid/cubrid.so
      2b4f22ce2000-2b4f22ee2000 ---p 00010000 fd:00 90539192                   /home/perl/opt/perl5/lib/site_perl/5.14.1/x86_64-linux/auto/DBD/cubrid/cubrid.so
      2b4f22ee2000-2b4f22ee3000 rw-p 00010000 fd:00 90539192                   /home/perl/opt/perl5/lib/site_perl/5.14.1/x86_64-linux/auto/DBD/cubrid/cubrid.so
      2b4f22ee3000-2b4f22ee6000 rw-p 2b4f22ee3000 00:00 0 
      2b4f22ee6000-2b4f22f03000 r-xp 00000000 fd:00 88604841                   /home/perl/CUBRID/lib/libcascci.so.8.4.1
      2b4f22f03000-2b4f23103000 ---p 0001d000 fd:00 88604841                   /home/perl/CUBRID/lib/libcascci.so.8.4.1
      ..........................
      Aborted
      

      Comments:
      Perhaps the error information can be more user-friendly when i run this cases.

      In error information:
      1.*** glibc detected *** perl: free(): invalid pointer: 0x0000003005b53a48 ***
      pointer: 0x0000003005b53a48
      2.======= Memory map: ========
      3005b52000-3005b53000 rw-p 00152000 fd:00 1114121 /lib64/libc-2.5.so
      3005b53000-3005b58000 rw-p 3005b53000 00:00 0
      3005c00000-3005c02000 r-xp 00000000 fd:00 1114131 /lib64/libdl-2.5.so
      3005c02000-3005e02000 ---p 00002000 fd:00 1114131 /lib64/libdl-2.5.so
      pointer: 0x0000003005b53a48 this pointer in memory map is empty.

      1. APIS-104_FIX01.creview
        16 kB
        张慧
      2. lob_get_2.pl
        1 kB
        ZouJing

        Activity

        Hide
        hellohuizhang 张慧 added a comment -

        Commit rev: 430

        Show
        hellohuizhang 张慧 added a comment - Commit rev: 430
        Hide
        zoujing ZouJing added a comment -

        Test build : CUBRID 2008 R4.1 (8.4.1.1018)
        OS: Linux 64bit
        Test Result: PASS
        so i close it

        Show
        zoujing ZouJing added a comment - Test build : CUBRID 2008 R4.1 (8.4.1.1018) OS: Linux 64bit Test Result: PASS so i close it

          People

          • Assignee:
            zoujing ZouJing
            Reporter:
            zoujing ZouJing
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: