Question about shm size in PostgrSQL docker

  • [x] I’m using stock docker compose setup, unmodified.
  • Tiny Tiny RSS version (latest v22.12-fb4bc26):
  • Platform docker-compose
  • docker-compose running on VPS with 8GB RAM

Hello, I using TTRSS in static docker from Docker Hub.
Recently I noticed that Event log is flooded with this:

Error	Filename
E_ERROR (1)	classes/counters.php:330
Uncaught PDOException: SQLSTATE[53100]: Disk full: 7 ERROR:  could not resize shared memory segment "/PostgreSQL.480255104" to 4194304 bytes: No space left on device in /var/www/html/tt-rss/classes/counters.php:330
Stack trace:
#0 /var/www/html/tt-rss/classes/counters.php(330): PDOStatement->execute()
#1 /var/www/html/tt-rss/classes/counters.php(11): Counters::get_labels()
#2 /var/www/html/tt-rss/classes/rpc.php(128): Counters::get_all()
#3 /var/www/html/tt-rss/backend.php(136): RPC->getAllCounters()
#4 {main}
  thrown
Request URI: /tt-rss/backend.php

And in docker logs:

...could not resize shared memory segment "/PostgreSQL.288449054"  bytes: No space left on device   

However, everything worked fine. Restarting the container had no effect on the problem, after a while the error appeared again.

I tried adding the line shm_size: '512mb' to (until then modified) docker-compose.yml (since supposedly the default is 64MB)
And from that moment the problem disappeared (no message in Tiny Tiny rss log or posgresql container)

Can it be caused by some recent update, or is on my end? I don’t have a very big TTRSS instance, so I can’t think why I should have such a special problem :slight_smile:

Thanks

i don’t think i’ve ever ran into this.

you could add this line using docker-compose.override.yml instead of modifying stock compose file, this way you’ll be update-proof.

1 Like

Thanks, docker-compose.override.yml is nice solution.

PS: this is log from db container when shim_size is default (64MB), if it could be helpful:
The error appears about a second after starting the container

LOG:  database system is ready to accept connections
ttrss-docker-db-1  | 2022-12-23 20:35:16.974 UTC [1272] ERROR:  could not resize shared memory segment "/PostgreSQL.555545370" to 2097152 bytes: No space left on device
ttrss-docker-db-1  | 2022-12-23 20:35:16.974 UTC [1272] STATEMENT:  SELECT id,
ttrss-docker-db-1  |                                                    caption,
ttrss-docker-db-1  |                                                    SUM(CASE WHEN u1.unread = true THEN 1 ELSE 0 END) AS count_unread,
ttrss-docker-db-1  |                                                    SUM(CASE WHEN u1.marked = true THEN 1 ELSE 0 END) AS count_marked,
ttrss-docker-db-1  |                                                    COUNT(u1.unread) AS total
ttrss-docker-db-1  |                                    FROM ttrss_labels2 LEFT JOIN ttrss_user_labels2 ON
ttrss-docker-db-1  |                                            (ttrss_labels2.id = label_id)
ttrss-docker-db-1  |                                                    LEFT JOIN ttrss_user_entries AS u1 ON u1.ref_id = article_id AND u1.owner_uid = $1
ttrss-docker-db-1  |                                                            WHERE ttrss_labels2.owner_uid = $1
ttrss-docker-db-1  |                                                                    GROUP BY ttrss_labels2.id, ttrss_labels2.caption
ttrss-docker-db-1  | 2022-12-23 20:35:16.976 UTC [1288] ERROR:  could not map dynamic shared memory segment
ttrss-docker-db-1  | 2022-12-23 20:35:16.979 UTC [1] LOG:  background worker "parallel worker" (PID 1288) exited with exit code 1
ttrss-docker-db-1  | 2022-12-23 20:35:17.030 UTC [1281] ERROR:  could not resize shared memory segment "/PostgreSQL.504688627" to 8388608 bytes: No space left on device
ttrss-docker-db-1  | 2022-12-23 20:35:17.030 UTC [1281] STATEMENT:  SELECT id,
ttrss-docker-db-1  |                                                    caption,
ttrss-docker-db-1  |                                                    SUM(CASE WHEN u1.unread = true THEN 1 ELSE 0 END) AS count_unread,
ttrss-docker-db-1  |                                                    SUM(CASE WHEN u1.marked = true THEN 1 ELSE 0 END) AS count_marked,
ttrss-docker-db-1  |                                                    COUNT(u1.unread) AS total
ttrss-docker-db-1  |                                    FROM ttrss_labels2 LEFT JOIN ttrss_user_labels2 ON
ttrss-docker-db-1  |                                            (ttrss_labels2.id = label_id)
ttrss-docker-db-1  |                                                    LEFT JOIN ttrss_user_entries AS u1 ON u1.ref_id = article_id AND u1.owner_uid = $1
ttrss-docker-db-1  |                                                            WHERE ttrss_labels2.owner_uid = $1
ttrss-docker-db-1  |                                                                    GROUP BY ttrss_labels2.id, ttrss_labels2.caption
ttrss-docker-db-1  | 2022-12-23 20:35:17.034 UTC [1250] ERROR:  could not resize shared memory segment "/PostgreSQL.422812965" to 8388608 bytes: No space left on device
ttrss-docker-db-1  | 2022-12-23 20:35:17.034 UTC [1250] STATEMENT:  SELECT id,
ttrss-docker-db-1  |                                                    caption,
ttrss-docker-db-1  |                                                    SUM(CASE WHEN u1.unread = true THEN 1 ELSE 0 END) AS count_unread,
ttrss-docker-db-1  |                                                    SUM(CASE WHEN u1.marked = true THEN 1 ELSE 0 END) AS count_marked,
ttrss-docker-db-1  |                                                    COUNT(u1.unread) AS total
ttrss-docker-db-1  |                                    FROM ttrss_labels2 LEFT JOIN ttrss_user_labels2 ON
ttrss-docker-db-1  |                                            (ttrss_labels2.id = label_id)
ttrss-docker-db-1  |                                                    LEFT JOIN ttrss_user_entries AS u1 ON u1.ref_id = article_id AND u1.owner_uid = $1
ttrss-docker-db-1  |                                                            WHERE ttrss_labels2.owner_uid = $1
ttrss-docker-db-1  |                                                                    GROUP BY ttrss_labels2.id, ttrss_labels2.caption
ttrss-docker-db-1  | 2022-12-23 20:35:17.045 UTC [1] LOG:  background worker "parallel worker" (PID 1281) exited with exit code 1
ttrss-docker-db-1  | 2022-12-23 20:35:17.048 UTC [1242] ERROR:  could not resize shared memory segment "/PostgreSQL.2038773020" to 8388608 bytes: No space left on device
ttrss-docker-db-1  | 2022-12-23 20:35:17.048 UTC [1242] STATEMENT:  SELECT id,
ttrss-docker-db-1  |                                                    caption,
ttrss-docker-db-1  |                                                    SUM(CASE WHEN u1.unread = true THEN 1 ELSE 0 END) AS count_unread,
ttrss-docker-db-1  |                                                    SUM(CASE WHEN u1.marked = true THEN 1 ELSE 0 END) AS count_marked,
ttrss-docker-db-1  |                                                    COUNT(u1.unread) AS total
ttrss-docker-db-1  |                                    FROM ttrss_labels2 LEFT JOIN ttrss_user_labels2 ON
ttrss-docker-db-1  |                                            (ttrss_labels2.id = label_id)
ttrss-docker-db-1  |                                                    LEFT JOIN ttrss_user_entries AS u1 ON u1.ref_id = article_id AND u1.owner_uid = $1
ttrss-docker-db-1  |                                                            WHERE ttrss_labels2.owner_uid = $1
ttrss-docker-db-1  |                                                                    GROUP BY ttrss_labels2.id, ttrss_labels2.caption