Public bug reported:

There is a bug in the default max file size of 16 Petabytes in
"Shredder" being interpreted as a negative number and causing an error
exit when "rmlint" is run by the GUI when the selected folder is
scanned. In addition, simply changing the Units from e.g. Petabyte to
Gigabyte does not enable the "Apply" button, which is only enabled by
changing the default value of 16 to e.g. 1.

Another error occurs because the /tmp/app.log file is not removed on
exit from the "Shredder" GUI. If a previous user created this log file
it can't be overwritten or removed if the s't'icky-bit is set on the
/tmp directory. Including the PID in the app.log filename would avoid
the problem and allow concurrent instances of "Shredder" to write to
"$$app.log".

The following logs captured from a CLI invocation of "Shredder"
illustrate how the negative max size problem can be fixed by changing
the default values, but the /tmp/app.log problem remains:

ajt@pilot:~$ rmlint --gui
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 42, in 
run_gui
    ROOT_LOGGER.info('Starting up.')
Message: 'Starting up.'
Arguments: ()
13:55:33 ⚐ INFO     root:42: Starting up.
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/application.py", line 102, in 
do_startup
    LOGGER.info('Loading resources from: ' + resource_file)
Message: 'Loading resources from: 
/usr/lib/python3/dist-packages/shredder/resources/shredder.gresource'
Arguments: ()
13:55:33 ⚐ INFO     application:102: Loading resources from: 
/usr/lib/python3/dist-packages/shredder/resources/shredder.gresource
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/application.py", line 148, in 
do_startup
    LOGGER.debug('Instancing views.')
Message: 'Instancing views.'
Arguments: ()
13:55:33 ⚙ DEBUG    application:148: Instancing views.
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/application.py", line 150, in 
do_startup
    self.win.views.add_view(LocationView(self), 'locations')
  File "/usr/lib/python3/dist-packages/shredder/views/locations.py", line 290, 
in __init__
    self.load_entries_from_disk(entries)
  File "/usr/lib/python3/dist-packages/shredder/views/locations.py", line 343, 
in load_entries_from_disk
    LOGGER.info('Loading entries initially')
Message: 'Loading entries initially'
Arguments: ()
13:55:33 ⚐ INFO     locations:343: Loading entries initially
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/application.py", line 152, in 
do_startup
    self.win.views.add_view(EditorView(self), 'editor')
  File "/usr/lib/python3/dist-packages/shredder/views/editor.py", line 514, in 
__init__
    self.text_view, buffer_ = _create_source_view()
  File "/usr/lib/python3/dist-packages/shredder/views/editor.py", line 52, in 
_create_source_view
    LOGGER.info('Using GtkSourceView since we have it.')
Message: 'Using GtkSourceView since we have it.'
Arguments: ()
13:55:33 ⚐ INFO     editor:52: Using GtkSourceView since we have it.
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/application.py", line 153, in 
do_startup
    LOGGER.debug('Done instancing views.')
Message: 'Done instancing views.'
Arguments: ()
13:55:33 ⚙ DEBUG    application:153: Done instancing views.
/usr/lib/python3/dist-packages/shredder/runner.py:170: Warning: 
g_variant_get_boolean: assertion 'g_variant_is_of_type (value, 
G_VARIANT_TYPE_BOOLEAN)' failed
  cfg.get_boolean('computation-algorithm'))
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/views/locations.py", line 580, 
in _run_clicked
    self.scan_paths(untagged, tagged)
  File "/usr/lib/python3/dist-packages/shredder/views/locations.py", line 591, 
in scan_paths
    main_view.trigger_run(untagged, tagged)
  File "/usr/lib/python3/dist-packages/shredder/views/runner.py", line 257, in 
trigger_run
    self.runner.run()
  File "/usr/lib/python3/dist-packages/shredder/runner.py", line 332, in run
    self.process = _create_rmlint_process(
  File "/usr/lib/python3/dist-packages/shredder/runner.py", line 216, in 
_create_rmlint_process
    LOGGER.info('Running: ' + ' '.join(cmdline))
Message: 'Running: rmlint --no-with-color -T duplicates --see-symlinks --hidden 
-c sh:handler=remove --hardlinked --no-crossdev --size 1-18446744073709551615 
--max-depth 512 -o json -c json:oneline /home/ajt/Documents/Work/Minke'
Arguments: ()
13:55:40 ⚐ INFO     runner:216: Running: rmlint --no-with-color -T duplicates 
--see-symlinks --hidden -c sh:handler=remove --hardlinked --no-crossdev --size 
1-18446744073709551615 --max-depth 512 -o json -c json:oneline 
/home/ajt/Documents/Work/Minke
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/runner.py", line 299, in 
on_io_event
    self.emit('process-finished', self._message)
  File "/usr/lib/python3/dist-packages/shredder/views/runner.py", line 304, in 
on_process_finish
    LOGGER.info('`rmlint` finished.')
Message: '`rmlint` finished.'
Arguments: ()
13:55:40 ⚐ INFO     runview:304: `rmlint` finished.
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/shredder/util.py", line 855, in 
on_unit_changed
    self.emit('value-changed', self.get_bytes())
TypeError: could not convert type float to gint required for parameter 0
/usr/lib/python3/dist-packages/shredder/runner.py:170: Warning: 
g_variant_get_boolean: assertion 'g_variant_is_of_type (value, 
G_VARIANT_TYPE_BOOLEAN)' failed
  cfg.get_boolean('computation-algorithm'))
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/views/locations.py", line 580, 
in _run_clicked
    self.scan_paths(untagged, tagged)
  File "/usr/lib/python3/dist-packages/shredder/views/locations.py", line 591, 
in scan_paths
    main_view.trigger_run(untagged, tagged)
  File "/usr/lib/python3/dist-packages/shredder/views/runner.py", line 257, in 
trigger_run
    self.runner.run()
  File "/usr/lib/python3/dist-packages/shredder/runner.py", line 332, in run
    self.process = _create_rmlint_process(
  File "/usr/lib/python3/dist-packages/shredder/runner.py", line 216, in 
_create_rmlint_process
    LOGGER.info('Running: ' + ' '.join(cmdline))
Message: 'Running: rmlint --no-with-color -T duplicates --see-symlinks --hidden 
-c sh:handler=remove --hardlinked --no-crossdev --size 1-1099511627776 
--max-depth 512 -o json -c json:oneline /home/ajt/Documents/Work/Minke'
Arguments: ()
13:56:13 ⚐ INFO     runner:216: Running: rmlint --no-with-color -T duplicates 
--see-symlinks --hidden -c sh:handler=remove --hardlinked --no-crossdev --size 
1-1099511627776 --max-depth 512 -o json -c json:oneline 
/home/ajt/Documents/Work/Minke
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/tree.py", line 505, in 
_add_defer
    LOGGER.info(
Message: 'Adding pack: %d/%d'
Arguments: (500, 500)
13:56:13 ⚐ INFO     tree:505: Adding pack: 500/500
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/tree.py", line 505, in 
_add_defer
    LOGGER.info(
Message: 'Adding pack: %d/%d'
Arguments: (500, 500)
13:56:13 ⚐ INFO     tree:505: Adding pack: 500/500
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/runner.py", line 299, in 
on_io_event
    self.emit('process-finished', self._message)
  File "/usr/lib/python3/dist-packages/shredder/views/runner.py", line 304, in 
on_process_finish
    LOGGER.info('`rmlint` finished.')
Message: '`rmlint` finished.'
Arguments: ()
13:56:13 ⚐ INFO     runview:304: `rmlint` finished.
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/tree.py", line 505, in 
_add_defer
    LOGGER.info(
Message: 'Adding pack: %d/%d'
Arguments: (130, 500)
13:56:13 ⚐ INFO     tree:505: Adding pack: 130/500
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/app.log'
Call stack:
  File "/tmp/.shredder-bootstrap.py.EE1CD1", line 19, in <module>
  File "/usr/lib/python3/dist-packages/shredder/__init__.py", line 43, in 
run_gui
    sys.exit(APP.run([sys.argv[0]]))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 44, in run
    return Gio.Application.run(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/shredder/views/runner.py", line 329, in 
on_delayed_chart_render
    self.rerender_chart()
  File "/usr/lib/python3/dist-packages/shredder/views/runner.py", line 340, in 
rerender_chart
    LOGGER.info('Refreshing chart.')
Message: 'Refreshing chart.'
Arguments: ()
13:56:14 ⚐ INFO     runview:340: Refreshing chart.
ajt@pilot:~$

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: rmlint 2.9.0-2
ProcVersionSignature: Ubuntu 5.11.0-40.44~20.04.2-generic 5.11.22
Uname: Linux 5.11.0-40-generic x86_64
NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
ApportVersion: 2.20.11-0ubuntu27.21
Architecture: amd64
CasperMD5CheckResult: skip
CurrentDesktop: MATE
Date: Fri Nov 19 14:00:36 2021
InstallationDate: Installed on 2020-05-02 (565 days ago)
InstallationMedia: Ubuntu-MATE 20.04 LTS "Focal Fossa" - Release amd64 
(20200423)
SourcePackage: rmlint
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: rmlint (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug focal

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1951596

Title:
  rmlint --gui (aka "Shredder") does not find any files

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rmlint/+bug/1951596/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to