You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Xviewer version (xviewer --version)
* Distribution - (Mint 17.2, Arch, Fedora 25, etc...)
Xviewer 3.2.10
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=21
DISTRIB_CODENAME=vanessa
DISTRIB_DESCRIPTION="Linux Mint 21 Vanessa"
Issue
Xviewer crashes trying to open an image in a directory while new images are being written to the same directory.
Steps to reproduce
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer --disable-gallery random_image_1.png
[1] 3787259
(xviewer:3787400): GLib-WARNING **: 21:22:18.877: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3787400): GLib-WARNING **: 21:22:18.877: Accessing a sequence while it is being sorted or searched is not allowed
double free or corruption (!prev)
Aborted (core dumped)
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer --disable-gallery random_image_1.png
[2] 3789287
[1] Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
(xviewer:3789398): GLib-WARNING **: 21:22:25.079: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3789398): GLib-WARNING **: 21:22:25.079: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3789398): GLib-WARNING **: 21:22:25.115: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3789398): GLib-WARNING **: 21:22:25.124: Accessing a sequence while it is being sorted or searched is not allowed
malloc(): invalid size (unsorted)
Aborted (core dumped)
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer random_image_1.png
[3] 3791306
[2] Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
** (xviewer:3791432): CRITICAL **: 21:22:36.432: xviewer_image_get_collate_key: assertion 'XVIEWER_IS_IMAGE (img)' failed
Segmentation fault (core dumped)
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer random_image_1.png
[4] 3793324
[3] Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
(xviewer:3793454): GLib-WARNING **: 21:22:38.727: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3793454): GLib-WARNING **: 21:22:38.727: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3793454): GLib-WARNING **: 21:22:38.741: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3793454): GLib-WARNING **: 21:22:38.774: Accessing a sequence while it is being sorted or searched is not allowed
malloc(): invalid size (unsorted)
Aborted (core dumped)
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer random_image_1.png
[5] 3795326
[4]- Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
free(): invalid pointer
Aborted (core dumped)
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer random_image_1.png
[6] 3797364
[5] Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
** (xviewer:3797450): CRITICAL **: 21:23:00.680: xviewer_image_get_collate_key: assertion 'XVIEWER_IS_IMAGE (img)' failed
Segmentation fault (core dumped)
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer random_image_1.png
[7] 3799383
[6] Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
(xviewer:3799505): GLib-WARNING **: 21:23:05.172: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3799505): GLib-WARNING **: 21:23:05.172: Accessing a sequence while it is being sorted or searched is not allowed
malloc(): invalid size (unsorted)
Aborted (core dumped)
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer random_image_1.png
[8] 3801401
[7] Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
(xviewer:3801610): GLib-WARNING **: 21:23:09.186: Accessing a sequence while it is being sorted or searched is not allowed
** (xviewer:3801610): CRITICAL **: 21:23:09.186: xviewer_image_get_collate_key: assertion 'XVIEWER_IS_IMAGE (img)' failed
[8]+ Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
Segmentation fault (core dumped)
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer random_image_1.png
[1] 3803536
(xviewer:3804051): GLib-WARNING **: 21:24:18.471: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3804051): GLib-WARNING **: 21:24:18.471: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3804051): GLib-WARNING **: 21:24:18.472: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3804051): GLib-WARNING **: 21:24:18.479: Accessing a sequence while it is being sorted or searched is not allowed
malloc(): invalid size (unsorted)
Aborted (core dumped)
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer random_image_999.png
[3] 3807579
[2] Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
(xviewer:3808165): GLib-WARNING **: 21:24:39.728: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3808165): GLib-WARNING **: 21:24:39.749: Accessing a sequence while it is being sorted or searched is not allowed
(xviewer:3808165): GLib-WARNING **: 21:24:39.749: Accessing a sequence while it is being sorted or searched is not allowed
malloc(): invalid size (unsorted)
Aborted (core dumped)
redacted:/tmp$ cp random_image_1.png bystander.png
[3]+ Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
redacted:/tmp$ (for i in $(seq 1 2000); do convert -size 1x1 xc:red "random_image_$i.png" >/dev/null 2>&1 & done) & sleep 0.5; xviewer bystander.png
[1] 3809610
** (xviewer:3810264): CRITICAL **: 21:25:20.358: xviewer_image_get_collate_key: assertion 'XVIEWER_IS_IMAGE (img)' failed
[1]+ Done ( for i in $(seq 1 2000);
do
convert -size 1x1 xc:red "random_image_$i.png" > /dev/null 2>&1 &
done )
Segmentation fault (core dumped)
Note: this is not a race condition in the pipes. I can reproduce this in two separate shells, while one is writing files to the directory and the other is trying to read a bystander file that is definitely written.
Don't crash. Also, for a default image viewer that should be 100% reliable, don't access files on a filesystem other than the files specified in the argument or without any user intent. This is linux. If you want to do feature-rich things without user intent in default applications, there are more appropriate platforms for that ethos.
Other information
At first I thought this was the same as the previously reported bug (#114), but I was corrected that it is a different bug. This one requires active file writes.
The text was updated successfully, but these errors were encountered:
Xviewer 3.2.10
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=21
DISTRIB_CODENAME=vanessa
DISTRIB_DESCRIPTION="Linux Mint 21 Vanessa"
Issue
Xviewer crashes trying to open an image in a directory while new images are being written to the same directory.
Steps to reproduce
Note: this is not a race condition in the pipes. I can reproduce this in two separate shells, while one is writing files to the directory and the other is trying to read a bystander file that is definitely written.
One trace:
Expected behavior
Don't crash. Also, for a default image viewer that should be 100% reliable, don't access files on a filesystem other than the files specified in the argument or without any user intent. This is linux. If you want to do feature-rich things without user intent in default applications, there are more appropriate platforms for that ethos.
Other information
At first I thought this was the same as the previously reported bug (#114), but I was corrected that it is a different bug. This one requires active file writes.
The text was updated successfully, but these errors were encountered: