[Touch-packages] [Bug 1890572] Re: USB backend never ends if the printer is not connected
We have prepared a patch for the package in Ubuntu 18.04 (CUPS 2.2.7). We would like to request to include a solution like this for at least Ubuntu 18.04. We also made a pull request in the official CUPS repository: https://github.com/apple/cups/issues/5817 https://github.com/apple/cups/pull/5818 However, we don't have plans to upgrade or change the distribution we use (Ubuntu 18.04), and this issue is affecting us considerably. ** Bug watch added: github.com/apple/cups/issues #5817 https://github.com/apple/cups/issues/5817 ** Patch added: "usb-libusb.c.patch" https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1890572/+attachment/5399506/+files/usb-libusb.c.patch -- 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
[Touch-packages] [Bug 1890572] Re: USB backend never ends if the printer is not connected
** 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
[Touch-packages] [Bug 1890572] [NEW] USB backend never ends if the printer is not connected
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
[Touch-packages] [Bug 1830629] Re: Errors when extracting ZIP files. It can not differentiate between files and directories
Good morning Murray, we performed some test and everything looks fine. Thank you very much. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to libarchive in Ubuntu. https://bugs.launchpad.net/bugs/1830629 Title: Errors when extracting ZIP files. It can not differentiate between files and directories Status in libarchive package in Ubuntu: Fix Released Status in libarchive source package in Bionic: Fix Committed Bug description: * Impact The bionic version has a known problem when reading file entries in ZIP files, where it incorrectly identifies directories and files entries. * Test case $ wget https://bugs.launchpad.net/ubuntu/+source/libarchive/+bug/1830629/+attachment/5268728/+files/example.zip $ bsdtar -vxf example.zip $ ls -l The 'ABCD_1234' and 'empty' entries should be directories * Regression potential Check that extracting zips from bsdtar or nautilus work without issue It has been confirmed that the previous and following versions (3.3.1+) do not have this problem and the library handles the ZIP files correctly. Is it possible to include a newer version of libarchive (3.3.1+) in Bionic? This problem is seriously affecting some of our systems. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libarchive/+bug/1830629/+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
[Touch-packages] [Bug 1830629] Re: Errors when extracting ZIP files. It can not differentiate between files and directories
Thank you Brian, We are going to be testing it during this week. I will let you know the results. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to libarchive in Ubuntu. https://bugs.launchpad.net/bugs/1830629 Title: Errors when extracting ZIP files. It can not differentiate between files and directories Status in libarchive package in Ubuntu: Fix Released Status in libarchive source package in Bionic: Fix Committed Bug description: * Impact The bionic version has a known problem when reading file entries in ZIP files, where it incorrectly identifies directories and files entries. * Test case $ wget https://bugs.launchpad.net/ubuntu/+source/libarchive/+bug/1830629/+attachment/5268728/+files/example.zip $ bsdtar -vxf example.zip $ ls -l The 'ABCD_1234' and 'empty' entries should be directories * Regression potential Check that extracting zips from bsdtar or nautilus work without issue It has been confirmed that the previous and following versions (3.3.1+) do not have this problem and the library handles the ZIP files correctly. Is it possible to include a newer version of libarchive (3.3.1+) in Bionic? This problem is seriously affecting some of our systems. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libarchive/+bug/1830629/+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
[Touch-packages] [Bug 1830629] Re: Errors when extracting ZIP files. It can not differentiate between files and directories
HI Sebastien, Sure. Here is a zip file that it's very easy to use to reproduce the defect. The defect s not in the bsdtar, it's in libarchive. However, since bsdtar depends on libarchive, this can be used to demonstrate the problem as someone reports in the GitHub issue report: https://github.com/libarchive/libarchive/issues/822 If you try to extract the content with bsdtar: # bsdtar -vxf example.zip You will see and error, and if you look to the result in the filesystem, that 'ABCD_1234' and 'empty' are created as files instead of directories. If you try the same operation using unzip in other directory (or after cleaning the previous operation): # unzip example.zip You will see the right result (ABCD_1234 and empty directories). Thanks for take care of this, Alejandro ** Attachment added: "example.zip" https://bugs.launchpad.net/ubuntu/+source/libarchive/+bug/1830629/+attachment/5268728/+files/example.zip -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to libarchive in Ubuntu. https://bugs.launchpad.net/bugs/1830629 Title: Errors when extracting ZIP files. It can not differentiate between files and directories Status in libarchive package in Ubuntu: New Bug description: The specific version included in Ubuntu 18.04 (libarchive 3.2.2) is the only version that presents the problem. This version has a known problem when reading file entries in ZIP files, where it incorrectly identifies directories and files entries. It has been confirmed that the previous and following versions (3.3.1+) do not have this problem and the library handles the ZIP files correctly. Is it possible to include a newer version of libarchive (3.3.1+) in Bionic? This problem is seriously affecting some of our systems. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libarchive/+bug/1830629/+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
[Touch-packages] [Bug 1830629] Re: Errors when extracting ZIP files. It can not differentiate between files and directories
One important note here, The defect is only present in version 3.2.2 (Bionic official version now). Previous and next version do work properly. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to libarchive in Ubuntu. https://bugs.launchpad.net/bugs/1830629 Title: Errors when extracting ZIP files. It can not differentiate between files and directories Status in libarchive package in Ubuntu: New Bug description: The specific version included in Ubuntu 18.04 (libarchive 3.2.2) is the only version that presents the problem. This version has a known problem when reading file entries in ZIP files, where it incorrectly identifies directories and files entries. It has been confirmed that the previous and following versions (3.3.1+) do not have this problem and the library handles the ZIP files correctly. Is it possible to include a newer version of libarchive (3.3.1+) in Bionic? This problem is seriously affecting some of our systems. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libarchive/+bug/1830629/+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