Bug 2298385
| Summary: | dnf5 automatic sends emails when no updates installed | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Steven Haigh <netwiz> |
| Component: | dnf5 | Assignee: | Petr Pisar <ppisar> |
| Status: | CLOSED ERRATA | QA Contact: | |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 40 | CC: | jkolarik, netwiz, nsella, pkratoch, ppisar, rpm-software-management |
| Target Milestone: | --- | Keywords: | Triaged |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | dnf5-5.2.5.0-2.fc41 dnf5-5.1.17-2.fc39 dnf5-5.1.17-2.fc40 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2024-08-11 03:29:52 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Steven Haigh
2024-07-17 02:27:56 UTC
It also seems that when dnf5-automatic actually does something, the emails that come through are just garbage... ie: €€€€€€€€1€€€€€€€€; ËU€€ ÿ¬ËU€€øã;½ü€€øã;½ü€€ Another example just contains: ├░гdААА1АААААААрN;JVАА № ;JVААААV%АААe>АА A third example: €€€€€€€€1€€€€€€€@kÿÒ—€€ ÿL[óU€€€€€€€€pØD[óU€€ There is still no subject or anything useful set in the email. I confirm the automatic behaves oddly. For me it crashed for the first time in __memcpy_avx_unaligned_erms(): #0 0x00007ff7fb955184 __memcpy_avx_unaligned_erms (libc.so.6 + 0x147184) #1 0x00007ff7fb873bd4 fmemopen_read (libc.so.6 + 0x65bd4) #2 0x00007ff7fb875813 _IO_file_underflow@@GLIBC_2.2.5 (libc.so.6 + 0x67813) #3 0x00007ff7fb877e45 _IO_default_xsgetn (libc.so.6 + 0x69e45) #4 0x00007ff7fb869a40 _IO_fread (libc.so.6 + 0x5ba40) #5 0x00007ff7faceb1f7 cr_in_read (libcurl.so.4 + 0x541f7) #6 0x00007ff7facf8608 cr_eob_read (libcurl.so.4 + 0x61608) #7 0x00007ff7facf0f20 Curl_client_read (libcurl.so.4 + 0x59f20) #8 0x00007ff7facf103d Curl_req_send_more (libcurl.so.4 + 0x5a03d) #9 0x00007ff7fad068da Curl_readwrite (libcurl.so.4 + 0x6f8da) #10 0x00007ff7face6258 multi_runsingle.lto_priv.0 (libcurl.so.4 + 0x4f258) #11 0x00007ff7face8c64 curl_multi_perform (libcurl.so.4 + 0x51c64) #12 0x00007ff7facbb8a3 curl_easy_perform (libcurl.so.4 + 0x248a3) #13 0x00007ff7f9ee30ad _ZN4dnf512EmitterEmail6notifyEv (automatic_cmd_plugin.so + 0x170ad) #14 0x00007ff7f9ed61f5 _ZN4dnf516AutomaticCommand3runEv (automatic_cmd_plugin.so + 0xa1f5) #15 0x0000557b633d5f78 main (dnf5 + 0x39f78) #16 0x00007ff7fb811248 __libc_start_call_main (libc.so.6 + 0x3248) #17 0x00007ff7fb81130b __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x330b) #18 0x0000557b633d88e5 _start (dnf5 + 0x3c8e5) Since then it always sends an empty e-mail. It does not matter whether it updates a package or not. I think I found the bug. EmitterEmail::notify() in dnf5-plugins/automatic_plugin/emitters.cpp invalidates a FILE * pointer before curl_easy_perform() can use it:
FILE * payload_file = fmemopen(payload.data(), payload.size(), "r");
curl_easy_setopt(curl, CURLOPT_READDATA, payload_file);
→ fclose(payload_file);
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
res = curl_easy_perform(curl);
Actually the whole notify() function is absolutely terrible because it almost never checks for errors.
Sending e-mails when no update is available is intended behavior: Subject: [fedora-41] dnf5-automatic: No new upgrades available. X-Mailer: dnf5-automatic Message-Id: <20240801140158.A0AB951> Updating and loading repositories: Repositories loaded. Resolved transaction: A side effect of the bug was that the subject was also missing. I will fix the bug. FEDORA-2024-f137952d9f (dnf5-5.1.17-2.fc40) has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2024-f137952d9f FEDORA-2024-2ce9a2a74e (dnf5-5.1.17-2.fc39) has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2024-2ce9a2a74e Thanks for taking a look at this. I've updated my systems that have dnf5 by default. I can see that there's a couple of updates left to install automatically (curl) - so I'll leave that run and confirm that I get an email with some information - as well as a run where (in theory), if there's nothing to update, I shouldn't get an email. If you don't hear back from me, then assume all is good. FEDORA-2024-f137952d9f has been pushed to the Fedora 40 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-f137952d9f` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-f137952d9f See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2024-2ce9a2a74e has been pushed to the Fedora 39 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-2ce9a2a74e` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-2ce9a2a74e See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2024-2ce9a2a74e (dnf5-5.1.17-2.fc39) has been pushed to the Fedora 39 stable repository. If problem still persists, please make note of it in this bug report. FEDORA-2024-f137952d9f (dnf5-5.1.17-2.fc40) has been pushed to the Fedora 40 stable repository. If problem still persists, please make note of it in this bug report. |