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