[sane-devel] Warnings from SNMP (was Epson Perfection)
chl at clerew.man.ac.uk
Sun Oct 18 23:24:20 BST 2020
On 18/10/2020 01:33, Olaf Meeuwissen wrote:
> Hi Ralph, Charles,
>>> Also, when running xsane and even simple-scan, it produced massive
>>> warnings of the form:
>>> MIB search path:
>>> Cannot find module (SNMPv2-MIB): At line 1 in (none)
>>> Cannot find module (IF-MIB): At line 1 in (none)
>>> Cannot find module (IP-MIB): At line 1 in (none)
>>> Cannot find module (TCP-MIB): At line 1 in (none)
>>> Cannot find module (UDP-MIB): At line 1 in (none)
>>> Cannot find module (HOST-RESOURCES-MIB): At line 1 in (none)
>>> Cannot find module (NOTIFICATION-LOG-MIB): At line 1 in (none)
>>> Cannot find module (DISMAN-EVENT-MIB): At line 1 in (none)
>>> Cannot find module (DISMAN-SCHEDULE-MIB): At line 1 in (none)
>>> Cannot find module (HOST-RESOURCES-TYPES): At line 1 in (none)
>>> Cannot find module (MTA-MIB): At line 1 in (none)
>>> Cannot find module (NETWORK-SERVICES-MIB): At line 1 in (none)
>>> Cannot find module (SNMPv2-TC): At line 15 in
>>> and much more. But I did not see them when using my own compiled
>> Sorry, don't know about that.
> Those warnings are courtesy of libsnmp and I think you compiled without.
> The Ubuntu bug report you mentioned talks about the possibility that
> colord-sane may be causing this. FWIW, we fixed a couple of backends a
> few months ago so that they no longer generate network traffic when the
> local-only option is used. See
> for details.
I have followed up that link, and also earlier discussions on this list
referenced there. It all seems to boil down to the function
SANE_Status sane_get_devices (const SANE_Device *** device_list,
and the exact meaning of local_only, and even the developers on this list can't
seem to agree on what that means. Note that there are more than one
implementation of that function throughout the whole system. So here is my take
Every usage of Sane starts from some frontend.
For example xsane (of which I have the code in front of me) has to decide what
backend it is going to use. If a backend is specified on the command line (and
you specify it by a Name (e.g. "Alice's Scanner"), then all is straightforward.
Otherwise, xsane calls
sane_get_devices(&xsane.devlist, SANE_FALSE /* local and network devices */);
which presumably looks at every SCSI Bus, and then any available Usb, and then
any server on the LAN which is running saned (with proper authorisation for
you), and then any such server on the internet; so if all it can find is a
server in Timbuktu, you will have to hire a camel to take your document to
Timbuktu to be scanned.
Now I have run xsane under gdb, and observe that by the time that call returns,
the deluge of warnings from snmp has already appeared, and note also that at
that stage all that xsane is aware of is a list of [name/vendor/model/type]; NO
specific device has been chosen, so the instance of sane_get_devices obeyed must
have been the generic one in libsane. We don't have a specific SANE_Handle
available, and therefore we cannot have obeyed and code in any SANE_handler.
Therefore this is not a backend problem. The culprit for the deluge of warnings
about snmp MUST be that sane_get_devices function in libsane, and that is where
you should look.
Now it is quite reasonable for a backend to seek advice from colord as to how to
process the stuff it scans (and I see that I do have a colord running, though
nothing in /etc/init.d), but that is for later when an actual backend has been
The plustek backend, which my scanner uses, has no interest in colord. It Does
seem to envisage that is may have several devices of the same type under
control, and it Does have a local implementation of sane_get_devices (which
merely ignores its local_only parameter and returns a list of devices it has
already been asked to activate). Who calls that local implementation is entirely
The colord-sane daemon is a more interesting problem. It is known known that it
incorporates a call of sane_get_devices, but I am not running colord-sane (that
I know of). And why it should get involved when sane_get_devices gets called
from xsane I cannot imagine.
I would suggest that some investigation of what the sane_get_devices in libsane
actually does and likewise what colord-sane is up to would lead to the solution
for this deluge.
Charles H. Lindsey ---------At my New Home, still doing my own thing------
Tel: +44 161 488 1845 Web: http://www.cs.man.ac.uk/~chl
Email: chl at clerew.man.ac.uk Snail-mail: Apt 40, SK8 5BF, U.K.
PGP: 2C15F1A9 Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5
More information about the sane-devel