[Bug 245767] ports-mgmt/pkg: 1.14.2 critical SQLITE error is ignored

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Apr 20 15:44:29 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=245767

            Bug ID: 245767
           Summary: ports-mgmt/pkg: 1.14.2 critical SQLITE error is
                    ignored
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Ports Framework
          Assignee: portmgr at FreeBSD.org
          Reporter: sobomax at FreeBSD.org
                CC: ports-bugs at FreeBSD.org

Created attachment 213606
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=213606&action=edit
Patch to fix the issue.

One of our build envs has run out of disk space, and we've noticed that error
is not raised by the pkg failure, resulting in quite a mess.

[2020-04-18T04:49:42.516Z] + rm /tmp/rrd_create.sh /tmp/rrd.conf
[2020-04-18T04:49:42.516Z] + rm -f /tmp/sh.qPrEwG
[2020-04-18T04:49:42.770Z] pkg-static: sqlite error while executing COMMIT
TRANSACTION
  in file pkgdb.c:1292: database or disk is full
[2020-04-18T04:49:43.046Z] ===>  Building package for ssp-5.3.20190821165853_3
[2020-04-18T04:50:30.208Z] ===>  Cleaning for ssp-5.3.20190821165853_3

Further investigation shows the following call stack:

#0  0x000000000046f66f in run_transaction (sqlite=0x8017fc008, query=0x8ebb87
"COMMIT TRANSACTION", savepoint=0x0) at pkgdb.c:1298
#1  0x000000000046f732 in pkgdb_transaction_commit_sqlite (sqlite=0x8017fc008,
savepoint=0x0) at pkgdb.c:1320
#2  0x000000000047200c in pkgdb_register_finale (db=0x8010a66e0, retcode=0,
savepoint=0x0) at pkgdb.c:2383
#3  0x0000000000469d45 in pkg_add_port (db=0x8010a66e0, pkg=0x801079000,
input_path=0x7fffffffe7ef "/tmp/media/ssp_port/work/stage", reloc=0x0,
testing=false) at pkg_ports.c:1365
#4  0x00000000004167e6 in exec_register (argc=7, argv=0x7fffffffe428) at
register.c:195
#5  0x000000000041145c in main (argc=7, argv=0x7fffffffe428) at main.c:886

The culprit seems in the pkg_add_port(), the return value of
pkgdb_register_finale() is not checked, resulting in error condition being
essentially lost.

(gdb) up
#3  0x0000000000469d45 in pkg_add_port (db=0x8010a66e0, pkg=0x801079000,
input_path=0x7fffffffe7ef "/tmp/media/ssp_port/work/stage", reloc=0x0,
testing=false) at pkg_ports.c:1365
1365            pkgdb_register_finale(db, rc, NULL);
(gdb) l
1360                            utstring_free(message);
1361                    }
1362            }
1363
1364    cleanup:
1365            pkgdb_register_finale(db, rc, NULL);
1366
1367            return (rc);
1368    }
(gdb) print rc
$2 = 0

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-ports-bugs mailing list