Roundcube error on certain emails

I’ve just started having an issue whereby Roundcube refuses to load emails from a certain specific source (a daily newsletter from a local newspaper). It has always worked fine before, but now when I select the email it doesn’t load in the right-side pane and Roundcube eventually throws a “Server Error” message. The problem started yesterday, and persists with today’s newsletter.

I checked /var/log/roundcubemail/errors.log and found the following at the time when I tried to access the email:

[21-Jan-2022 09:00:02 -0500]: <garl3ei8> DB Error: [5] database is locked (SQL Query: UPDATE "session" SET "changed" = datetime('now'), "vars" = [Long random string] WHERE "sess_id" = 'garl3ei83ke15kj5gordkh5htp') in /usr/local/lib/roundcubemail/program/lib/Roundcube/rcube_db.php on line 566 (GET /mail/?_task=mail&_caps=pdf%3D1%2Cflash%3D0%2Ctiff%3D0%2Cwebp%3D1%2Cpgpmime%3D0&_uid=1939&_mbox=INBOX&_framed=1&_action=preview)
[21-Jan-2022 09:00:55 -0500]: <garl3ei8> PHP Error: cURL error 7: Failed to connect to fonts.googleapis.com port 443: Connection timed out (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) in /usr/local/lib/roundcubemail/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 200 (GET /mail/?_task=utils&_action=modcss&_u=tmp-53db549f26051fa84aa89be00e840e0e.css&_c=message-htmlpart1)
[21-Jan-2022 09:00:55 -0500]: <garl3ei8> PHP Error: cURL error 7: Failed to connect to fonts.googleapis.com port 443: Connection timed out (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) in /usr/local/lib/roundcubemail/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 200 (GET /mail/?_task=utils&_action=modcss&_u=tmp-ebc173c0fc97eef86a6e51ada56c5a9a.css&_c=message-htmlpart1)

When I open the same email using a desktop or iOS mail client, it works fine. The issue seems specific to the Roundcube client.

Any ideas?

Thanks!

OK, did some troubleshooting and found that my mailinabox instance cannot connect to fonts.googleapis.com, as the error messages indicate. I’m guessing the email in question tries to load fonts from that URL, and fails.

curl -I https://fonts.googleapis.com

results in a timeout. However,

curl -I https://www.googleapis.com

or any other URL works fine. It’s really strange.

One possibility is that Google is getting too many “hits” to fonts.googleapis.com from my VPS provider’s IP block, and is dropping the requests. This is just a thought, I haven’t confirmed it.

I assume that a ping just times out … but what do you see when you run a mtr? Maybe that will shed some light on the situation?

Yes, a ping does indeed time out as well. Further investigation reveals that when my mailinabox instance does a DNS lookup for fonts.googleapis.com, the IP returned by Google’s name server (ns4.google.com) is 203.208.39.225. Pinging that IP times out both from my mailinabox and from my own local desktop PC.

However, when I perform the same DNS lookup from my local PC, the returned IP is 172.217.13.170 which pings successfully from both my PC and my mailinabox.

Conclusion: This seems like a Google anycast DNS issue, whereby Google’s DNS server returns a dead IP address when requested from mailinabox. Not sure how to approach Google about this…

Also, how does mailinabox perform name resolution? My /etc/resolv.conf file shows that the configured DNS is localhost:53, and lsof shows named running on that port. However, there’s no /etc/named.conf file. I assume it’s doing recursive DNS resolution?

This topic was automatically closed 40 days after the last reply. New replies are no longer allowed.