pstream: Log "Cannot send block reference..." only once per pstream
authorTanu Kaskinen <tanuk@iki.fi>
Sat, 14 Mar 2020 06:22:44 +0000 (08:22 +0200)
committerPulseAudio Marge Bot <pulseaudio-maintainers@lists.freedesktop.org>
Thu, 10 Dec 2020 16:31:13 +0000 (16:31 +0000)
Despite the ratelimiting, this error gets logged too much.

I fixed a typo (Fallig -> Falling) while at it.

Related: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/824
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/265>

src/pulsecore/pstream.c

index eb70508..7147b77 100644 (file)
@@ -154,6 +154,7 @@ struct pa_pstream {
      * @registered_memfd_ids: registered memfd pools SHM IDs. Check
      * pa_pstream_register_memfd_mempool() for more information. */
     bool use_shm, use_memfd;
+    bool non_registered_memfd_id_error_logged;
     pa_idxset *registered_memfd_ids;
 
     pa_memimport *import;
@@ -677,9 +678,11 @@ static void prepare_next_write_item(pa_pstream *p) {
                         flags |= PA_FLAG_SHMDATA_MEMFD_BLOCK;
                         send_payload = false;
                     } else {
-                        if (pa_log_ratelimit(PA_LOG_ERROR)) {
+                        if (!p->non_registered_memfd_id_error_logged) {
                             pa_log("Cannot send block reference with non-registered memfd ID = %u", shm_id);
-                            pa_log("Fallig back to copying full block data over socket");
+                            pa_log("Falling back to copying full block data over socket");
+                            pa_log("There's a bug report about this: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/824");
+                            p->non_registered_memfd_id_error_logged = true;
                         }
                     }
                 }