Open notz opened 3 days ago
We use postal on kubernetes with a managed database from OVH. After OVH applied a security update on the database servers, the smtp server wasn't working anymore.
On smtp client we received: can't modify frozen String: "end of file reached"
can't modify frozen String: "end of file reached"
Here is a log from one smtp session:
2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/lib/postal/message_db/message.rb:278:in `save_raw_message' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/lib/postal/message_db/message.rb:208:in `save' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/client.rb:506:in `block in finished' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/client.rb:490:in `each' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/client.rb:490:in `finished' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/client.rb:429:in `block in data' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/client.rb:72:in `handle' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/server.rb:204:in `block (2 levels) in run_event_loop' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/server.rb:106:in `select' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/server.rb:106:in `block in run_event_loop' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/server.rb:104:in `loop' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/server.rb:104:in `run_event_loop' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/server.rb:39:in `block in run' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /usr/local/bundle/gems/klogger-logger-1.4.0/lib/klogger/group_set.rb:18:in `call_without_id' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /usr/local/bundle/gems/klogger-logger-1.4.0/lib/klogger/logger.rb:72:in `tagged' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/app/lib/smtp_server/server.rb:37:in `run' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.805 2024-07-01 07:36:01 +0000 ERROR script/smtp_server.rb:13:in `<main>' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.804 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/lib/postal/message_db/database.rb:311:in `block in escape' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.804 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/lib/postal/message_db/connection_pool.rb:20:in `use' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.804 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/lib/postal/message_db/database.rb:345:in `with_mysql' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.804 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/lib/postal/message_db/database.rb:303:in `escape' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.804 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/lib/postal/message_db/database.rb:232:in `block in insert' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.804 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/lib/postal/message_db/database.rb:232:in `map' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.804 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/lib/postal/message_db/database.rb:232:in `insert' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.804 2024-07-01 07:36:01 +0000 ERROR /opt/postal/app/lib/postal/message_db/database.rb:125:in `insert_raw_message' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.803 2024-07-01 07:36:01 +0000 ERROR An error occurred while processing data from a client. trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.803 2024-07-01 07:36:01 +0000 ERROR NoMethodError: undefined method `escape' for nil:NilClass trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.756 2024-07-01 07:36:01 +0000 DEBUG <= Date: Mon, 01 Jul 2024 07:36:01 +0000 trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.756 2024-07-01 07:36:01 +0000 DEBUG Not logging further message data. trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.755 2024-07-01 07:36:01 +0000 DEBUG => 354 Go ahead trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.754 2024-07-01 07:36:01 +0000 DEBUG Added external address 'xxx.xxxr@test.me' trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.754 2024-07-01 07:36:01 +0000 DEBUG => 250 OK trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.754 2024-07-01 07:36:01 +0000 DEBUG <= DATA trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.753 2024-07-01 07:36:01 +0000 DEBUG <= MAIL FROM:<noreply@test.me> trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.753 2024-07-01 07:36:01 +0000 DEBUG => 250 OK trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.753 2024-07-01 07:36:01 +0000 DEBUG <= RCPT TO:<xxx.xxx@test.me> trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.749 2024-07-01 07:36:01 +0000 DEBUG => 235 Granted for service/psy-discourse trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.742 2024-07-01 07:36:01 +0000 DEBUG <= xxx trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.742 2024-07-01 07:36:01 +0000 DEBUG => 334 UGFzc3dvcmQ6 trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.742 2024-07-01 07:36:01 +0000 DEBUG <= [redacted] trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.741 2024-07-01 07:36:01 +0000 DEBUG <= AUTH LOGIN trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.741 2024-07-01 07:36:01 +0000 DEBUG => 334 VXNlcm5hbWU6 trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.694 2024-07-01 07:36:01 +0000 DEBUG <= EHLO localhost.localdomain trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.694 2024-07-01 07:36:01 +0000 DEBUG => 250-My capabilities are trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.694 2024-07-01 07:36:01 +0000 DEBUG => 250 AUTH CRAM-MD5 PLAIN LOGIN trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.689 2024-07-01 07:36:01 +0000 DEBUG <= STARTTLS trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.689 2024-07-01 07:36:01 +0000 DEBUG => 220 Ready to start TLS trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.645 2024-07-01 07:36:01 +0000 DEBUG <= EHLO localhost.localdomain trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.645 2024-07-01 07:36:01 +0000 DEBUG => 250-My capabilities are trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.645 2024-07-01 07:36:01 +0000 DEBUG => 250-STARTTLS trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.645 2024-07-01 07:36:01 +0000 DEBUG => 250 AUTH CRAM-MD5 PLAIN LOGIN trace_id=E0LLJEZE component=smtp-server 2024-07-01 09:36:01.644 2024-07-01 07:36:01 +0000 DEBUG Client identified as 10.2.4.69 trace_id=E0LLJEZE component=smtp-server
Here is the evidence for the database change:
The other pods for web & worker pods have restarted after the database change. So there was no problem.
Database connection should be restored.
So everything is working now it has been restarted and there was only a failure whilst the change was applied and the connection was broken?
@willpower232 yes, after pod restart everything was working fine.
We use postal on kubernetes with a managed database from OVH. After OVH applied a security update on the database servers, the smtp server wasn't working anymore.
On smtp client we received:
can't modify frozen String: "end of file reached"
Here is a log from one smtp session:
Here is the evidence for the database change:![image](https://github.com/postalserver/postal/assets/697251/981b8e18-0325-4234-a25e-f96442abff81)
The other pods for web & worker pods have restarted after the database change. So there was no problem.
Expected behaviour
Database connection should be restored.
Environment details