- Status Closed
- Percent Complete
- Task Type Bug Report
- Category tools → prt-get
-
Assigned To
crux - Operating System Linux
- Severity Medium
- Priority Very Low
- Reported Version 2.6
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#619 - prt-get thinks a package is installed if disk space runs out while installing a prebuilt package
Hello. Under Crux 2.6 and prt-get version 5.18, if the disk runs out of space while prt-get is installing a precompiled package, pkgadd will report disk space errors, but prt-get will still mark the package as installed.
This might help visualize:
---
bash-4.1# prt-get depinst alpine
prt-get: installing /usr/ports/local/alpine
=======> Package '/usr/ports/local/alpine/alpine#2.00-1.pkg.tar.gz' is up to date.
prt-get: installing alpine 2.00-1
pkgadd: could not install usr/bin/rpload: Write failed
pkgadd: could not install usr/man/man1/pilot.1.gz: Write failed
pkgadd: could not install usr/man/man1/rpdump.1.gz: Write failed
pkgadd: could not install usr/man/man1/rpload.1.gz: Write failed
pkgadd: could not install usr/man/man1/alpine.1.gz: Write failed
pkgadd: could not install usr/man/man1/pico.1.gz: Write failed
/sbin/ldconfig: Writing of cache data failed: No space left on device
-- Packages installed
alpine
---
Using prt-get isinst on that package reports it as installed. If disk space is freed, the package must be "removed" before it can be installed again.
Cheers and thanks!
12.02.2017 03:14
Reason for closing: Invalid
Additional comments about closing: As stated by jw. This is not a bug with prt-get
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task
prt-get does not manipulate the package database itself, that pkgadd's responsibility. 'prt-get isinst' uses that same database to determine whether a package is installed, thus if it reports a package to be installed, that's because pkgadd added it to the database earlier.
Also, prt-get uses pkgadd's return value to determine whether an install transaction was successful, so I'm pretty sure that pkgadd returns with a return value of zero, thus prt-get will assume the installation worked, and thus print the package in the "Packages installed" section
Context: http://crux.nu/gitweb/?p=tools/pkgutils.git;a=blob;f=pkgutil.cc;h=f549b893e12b92884a6b437cfb9b9752868606bd;hb=HEAD#l434
The comment there states: "If a file fails to install we just print an error message and continue trying to install the rest of the package." Not sure if there's an easy way to detect "Write failed" errors, I guess these should cause pkgadd to fail
I understand, thank you; I see where I misunderstood what prt-get was doing. Should I create a similar task (bug) to this one, for pkgadd?
yeah, please do; also, it's probably a good idea to add this task here as "related task"