** Description changed:

- USB backend never ends if the printer is not connected. we have been
+ 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);
-   }
+   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.
+ Setting a work timeout policy or manually stopping work are not options
+ for us. We may have jobs that take up to an hour to complete.

** Description changed:

  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: Printing on printer with URI: usb://Printer/Model?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 work timeout policy or manually stopping work are not options
  for us. We may have jobs that take up to an hour to complete.

** Description changed:

  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://Printer/Model?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 work timeout policy or manually stopping work are not options
+ Setting a job timeout policy or manually stopping work are not options
  for us. We may have jobs that take up to an hour to complete.

** Description changed:

  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://Printer/Model?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 manually stopping work are not options
- for us. We may have jobs that take up to an hour to complete.
+ for us. We may have jobs that take hours to complete.

-- 
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://Printer/Model?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 manually stopping work are not options
  for us. We may have jobs that take hours 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