/tmp size can prevent syncing library with device
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
calibre |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
Problem appears in Arch Linux and Fedora Rawhide
Fedora: 2.20
Arch: 2.21
$ mount | grep /tmp
tmpfs on /tmp type tmpfs (rw,seclabel)
Before sending books
$ df -h /tmp #Fedora
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.9G 15M 1.9G 1% /tmp
While sending books (some portion of library). Same results after exception.
$df -h /tmp #Fedora
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.9G 1.9G 15M 100% /tmp
Error message when filling /tmp:
calibre, version 2.20.0
ERROR: Unhandled exception: <b>IOError<
calibre 2.20 isfrozen: False is64bit: True
Linux-4.
('Linux', '4.0.0-
Python 2.7.9
Linux: ('Fedora', '23', 'Rawhide')
Traceback (most recent call last):
File "/usr/lib64/
self.
File "/usr/lib64/
exclude_
File "/usr/lib64/
self.
File "/usr/lib64/
return self.new_
File "/usr/lib64/
return func(*args, **kwargs)
File "/usr/lib64/
use_
File "/usr/lib64/
shutil.
File "/usr/lib64/
fdst.write(buf)
IOError: [Errno 28] No space left on device
When sending books to device, calibre uses /tmp, and when /tmp fills up errors out.
Steps to reproduce:
1. Have a Calibre Library larger than /tmp
2. Select all books in Calibre Library and send to device
3. Wait until it errors out
Expected behavior:
Calibre checks space left in /tmp, and sends library in chunks of size <= space left in /tmp, perhaps multiplied by something < 1. Failing this, Calibre should remove its temporary folder so that /tmp is not 100% full (and user can send chunks of library at a time).
Dont put /tmp in RAM. It is a stupid idea, no one if going to re-write
all programs to start checking if /tmp is too small before every
operation. If you must put /tmp in RAM, then use a different temp
directory for calibre via the CALIBRE_TEMP_DIR env var.
status wontfix