Groovy recreation of the issue: $ apt-cache policy whoopsie whoopsie: Installed: 0.2.72.1 root@clean-groovy-amd64:~# sudo CRASH_DB_URL=https://daisy.staging.ubuntu.com whoopsie -f [11:18:23] Using lock path: /var/lock/whoopsie/lock [11:18:23] The default IPv4 route is: /org/freedesktop/NetworkManager/ActiveConnection/1 [11:18:23] Not a paid data plan: /org/freedesktop/NetworkManager/ActiveConnection/1 [11:18:23] Found usable connection: /org/freedesktop/NetworkManager/ActiveConnection/1 [11:18:23] Parsing /var/crash/_bin_cat.2001.crash. [11:18:23] Uploading /var/crash/_bin_cat.2001.crash. [11:18:24] Sent; server replied with: No error [11:18:24] Response code: 200 [11:18:24] Got command: CORE 0
--- Verification of the fix: root@clean-groovy-amd64:~# apt-cache policy whoopsie whoopsie: Installed: 0.2.72.2 [11:23:08] Parsing /var/crash/_bin_cat.2001.crash. [11:23:08] Uploading /var/crash/_bin_cat.2001.crash. [11:23:08] Sent; server replied with: No error [11:23:08] Response code: 200 [11:23:08] Reported OOPS ID 3ddb1a5e-6b0c-11eb-aff9-00163ed65bda [11:23:13] Sent; server replied with: No error [11:23:13] Response code: 200 Testing that it still works with production: root@clean-groovy-amd64:~# sudo CRASH_DB_URL=https://daisy.ubuntu.com whoopsie -f [11:23:55] Using lock path: /var/lock/whoopsie/lock [11:23:55] The default IPv4 route is: /org/freedesktop/NetworkManager/ActiveConnection/1 [11:23:55] Not a paid data plan: /org/freedesktop/NetworkManager/ActiveConnection/1 [11:23:55] Found usable connection: /org/freedesktop/NetworkManager/ActiveConnection/1 [11:23:59] Parsing /var/crash/_bin_cat.2001.crash. [11:23:59] Uploading /var/crash/_bin_cat.2001.crash. [11:24:10] Sent; server replied with: No error [11:24:10] Response code: 200 [11:24:10] Reported OOPS ID 6252751c-6b0c-11eb-98c2-fa163e983629 [11:24:13] Sent; server replied with: No error [11:24:13] Response code: 200 ** Tags removed: verification-needed verification-needed-groovy ** Tags added: verification-done verification-done-groovy -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to whoopsie in Ubuntu. https://bugs.launchpad.net/bugs/1914481 Title: use the size of the data when determining the server response Status in whoopsie package in Ubuntu: Fix Released Status in whoopsie source package in Focal: Fix Committed Status in whoopsie source package in Groovy: Fix Committed Status in whoopsie source package in Hirsute: Fix Released Bug description: [Note] This SRU has been built in a security-only PPA and should be released to both -updates and -security. [Impact] whoopsie's server_response code is using "g_string_append" instead of "g_string_append_len" which has the knock on effect of sending too much data to its "handle_response". This ends up being a problem if the daisy servers are running on Ubuntu 18.04 instead of Ubuntu 16.04. Here's an example when using whoopsie on groovy to send a crash to a bionic daisy server: [15:35:30] Sent; server replied with: No error [15:35:30] Response code: 200 [15:35:30] Initial response data is: 2bbb776e-64e6-11eb-a8d6-00163eddedf4 OOPSID 0 [15:35:30] Got command: OOPSID We can see a fair number of extra characters (\n0\n\n) after the OOSID command. This becomes more problematic when daisy requests a core dump from the client as the CORE command won't match and the client will never send the core dump. [Test Case] Setup a Bionic version of the Error Tracker: 0) modify /etc/hosts so daisy.staging.ubuntu.com points to the IP of the apache server for daisy 1) sudo service stop whoopsie 2) sudo CRASH_DB_URL=https://daisy.staging.ubuntu.com whoopsie -f 3) Run test/submit-crash test-crashes/hirsute/amd64/_bin_cat.2001.crash 4) check the whoopsie log file for "Got command: OOPSID" and extra data. With the version of whoopsie from -proposed this will not happen. Additionally, a regression test should be run against the staging version of the error tracker by removing the entry from /etc/hosts for the daisy.staging server. After confirming that one test crash works one should also send a python crash, and an end of life release crash as those all generate different response codes from the server. [Regression Potential] The code being changed is clearly wrong and doesn't confirm to the curl API https://curl.se/libcurl/c/CURLOPT_WRITEFUNCTION.html. Additionallly, this is similar to the code before r707 of daisy which introduced this change so there is little chance of regression. That being said we are running a regression test to ensure whoopsie works with servers running Ubuntu 16.04. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/whoopsie/+bug/1914481/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp

