[sane-devel] simple-scan & SANE_STATUS_DEVICE_BUSY
Alexander Pevzner
pzz at apevzner.com
Wed Aug 5 13:09:41 BST 2020
Hi Olaf.
I wrote it here with a primary reason to notify developers of other
backends that the problem exist.
simple-scan is quite popular among users, so chances to meet this
problem in wild are not zero.
So if somebody will receive a "simple-scan with your backend crashes my
device" bug report, I hope my posting will save a bit of his or her time.
I'll file, of course, a bug report against simple-scan, but who knows
how long it will take before the bug will be fixed and update will be
widely distributed.
On 8/5/20 2:45 PM, Olaf Meeuwissen wrote:
> Hi Alexander,
>
> Alexander Pevzner writes:
>
>> Hi everybody,
>>
>> it can be interesting for many backend developers.
>>
>> When simple-scan receives SANE_STATUS_DEVICE_BUSY from sane_start(), it
>> simply retries in a loop. Without any limit, without any delay, simply
>> spins in retry loop as fast, as backend allows.
>>
>> This is, in theory, very convenient for users, because as soon as device
>> becomes ready, scanning resumes automatically.
>>
>> But it puts device (and backend) under the stress test. And I believe,
>> not all devices (and not all backends) will survive.
>
> Quoting from the SANE Standard's documentation for sane_start() [1]
>
> > SANE_STATUS_DEVICE_BUSY: The device is busy. The operation should be retried later.
>
> [1]: https://sane-project.gitlab.io/standard/api.html#sane-start
>
> There is nothing on suggested delays, back-offs or retry counts. I
> guess the idea was that API users were well-behaved :-/
>
> Blame simple-scan for not being none of well-behaved, good-neighbourly
> and patient. And file a bug report with the appropriate project ;-)
>
> I don't think backends should not be bending over backwards to prevent
> frontends from DOS-ing the device. Instead, backend developers should
> be cluebatting frontend developers (and vice-versa, btw). They should
> not be antagonists. They should work together to build an eco-system
> where both have the best interests of the other in mind.
>
> That said, if a DOS attempt has the possibility of causing physical
> damage to a device, that is something backend developers should work
> hard to prevent.
>
> Hope this helps,
> --
> Olaf Meeuwissen, LPIC-2 FSF Associate Member since 2004-01-27
> GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13 F43E B8A4 A88A F84A 2DD9
> Support Free Software https://my.fsf.org/donate
> Join the Free Software Foundation https://my.fsf.org/join
>
--
Wishes, Alexander Pevzner (pzz at apevzner.com)
More information about the sane-devel
mailing list