Public bug reported:

USB backend never ends if the printer is not connected. we have been
able to identify a infinity loop in print_device function in usb-
libusb.c file:

```
  fprintf(stderr, "DEBUG: Printing on printer with URI: %s\n", uri);
  while ((g.printer = find_device(print_cb, uri)) == NULL)
  {
    _cupsLangPrintFilter(stderr, "INFO",
                         _("Waiting for printer to become available."));
    sleep(5);
  }
```

It's also easy to test by invoking the backend by hand:


```
# export DEVICE_URI='usb://Printer/Model?serial=?'
# /usr/lib/cups/backend/usb 0 root title 1 '' data.file

DEBUG: Loading USB quirks from "/usr/share/cups/usb".
DEBUG: Loaded 159 quirks.
DEBUG: Printing on printer with URI: usb://Brother/PJ-773?serial=?
DEBUG: libusb_get_device_list=6
INFO: Waiting for printer to become available.

DEBUG: libusb_get_device_list=6
INFO: Waiting for printer to become available.
DEBUG: libusb_get_device_list=6
INFO: Waiting for printer to become available.
DEBUG: libusb_get_device_list=6
INFO: Waiting for printer to become available.
DEBUG: libusb_get_device_list=6
INFO: Waiting for printer to become available.
...

```

Setting a job timeout policy or stopping the job by hand are not options
for us. We can have job that take up to an hour to complete.

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

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to cups in Ubuntu.
https://bugs.launchpad.net/bugs/1890572

Title:
  USB backend never ends if the printer is not connected

Status in cups package in Ubuntu:
  New

Bug description:
  USB backend never ends if the printer is not connected. we have been
  able to identify a infinity loop in print_device function in usb-
  libusb.c file:

  ```
    fprintf(stderr, "DEBUG: Printing on printer with URI: %s\n", uri);
    while ((g.printer = find_device(print_cb, uri)) == NULL)
    {
      _cupsLangPrintFilter(stderr, "INFO",
                         _("Waiting for printer to become available."));
      sleep(5);
    }
  ```

  It's also easy to test by invoking the backend by hand:

  
  ```
  # export DEVICE_URI='usb://Printer/Model?serial=?'
  # /usr/lib/cups/backend/usb 0 root title 1 '' data.file

  DEBUG: Loading USB quirks from "/usr/share/cups/usb".
  DEBUG: Loaded 159 quirks.
  DEBUG: Printing on printer with URI: usb://Brother/PJ-773?serial=?
  DEBUG: libusb_get_device_list=6
  INFO: Waiting for printer to become available.

  DEBUG: libusb_get_device_list=6
  INFO: Waiting for printer to become available.
  DEBUG: libusb_get_device_list=6
  INFO: Waiting for printer to become available.
  DEBUG: libusb_get_device_list=6
  INFO: Waiting for printer to become available.
  DEBUG: libusb_get_device_list=6
  INFO: Waiting for printer to become available.
  ...

  ```

  Setting a job timeout policy or stopping the job by hand are not
  options for us. We can have job that take up to an hour to complete.

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to