chiadog
chiadog copied to clipboard
Smtp error in chiadog's notification, but send emial using Smtp directly is work normal.
Describe the bug
I don't why when the chiadog try to send notification through smtp I got below error. seems the network is not connected to internet, but whan I try to send email directly through python code also with smtp is successed.
[2021-05-11 01:13:17] [ WARNING] --- Experiencing networking issues? Skipped 2+ signage points in the last hour. (non_skipped_signage_points.py:46)
--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.8/smtplib.py", line 391, in getreply
line = self.file.readline(_MAXLINE + 1)
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/chiadog/src/notifier/smtp_notifier.py", line 55, in send_events_to_user
server = smtplib.SMTP(self.host, self.port, timeout=self._conn_timeout_seconds)
File "/usr/lib/python3.8/smtplib.py", line 253, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python3.8/smtplib.py", line 341, in connect
(code, msg) = self.getreply()
File "/usr/lib/python3.8/smtplib.py", line 394, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed: "
smtplib.SMTPServerDisconnected: Connection unexpectedly closed: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/logging/__init__.py", line 1081, in emit
msg = self.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 925, in format
return fmt.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 664, in format
record.message = record.getMessage()
File "/usr/lib/python3.8/logging/__init__.py", line 369, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
File "/usr/lib/python3.8/threading.py", line 890, in _bootstrap
self._bootstrap_inner()
File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/usr/lib/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/chiadog/src/chia_log/log_consumer.py", line 80, in _consume_loop
self._notify_subscribers(log_line)
File "/chiadog/src/chia_log/log_consumer.py", line 50, in _notify_subscribers
subscriber.consume_logs(logs)
File "/chiadog/src/chia_log/log_handler.py", line 37, in consume_logs
self._notify_manager.process_events(events)
File "/chiadog/src/notifier/notify_manager.py", line 61, in process_events
if not self._notifiers[key].send_events_to_user(events):
File "/chiadog/src/notifier/smtp_notifier.py", line 65, in send_events_to_user
logging.error("SMTP Notify Error: ", e)
Message: 'SMTP Notify Error: '
Arguments: (SMTPServerDisconnected('Connection unexpectedly closed: timed out'),)
[2021-05-11 01:13:27] [ ERROR] --- Failed to send events over smtp (notify_manager.py:62)
This is my python3 code for send email directly in docker, that can access internet with no error.
babybear@chiah001:~$ cat sendemail.py
import smtplib, ssl
#port = 587 # For SSL
port = 465
password = "******"
smtp_server = "smtp.163.com"
sender_email = "******@163.com" # Enter your address
receiver_email = "******@163.com" # Enter receiver address
message = """\
Subject: Hi there
This message is sent from docker."""
context = ssl.create_default_context()
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
Environment:
- OS: Ubuntu, chiadog in docker
- Python version: 3.8.5
- PIP version: 20.0.2
- Chia version: 1.1.5
Addition information: I did the unittest but can not passed.
(venv) root@6570351871dd:/chiadog# python -m unittest tests.notifier.test_smtp_notifier
--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.8/smtplib.py", line 391, in getreply
line = self.file.readline(_MAXLINE + 1)
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/chiadog/src/notifier/smtp_notifier.py", line 55, in send_events_to_user
server = smtplib.SMTP(self.host, self.port, timeout=self._conn_timeout_seconds)
File "/usr/lib/python3.8/smtplib.py", line 253, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python3.8/smtplib.py", line 341, in connect
(code, msg) = self.getreply()
File "/usr/lib/python3.8/smtplib.py", line 394, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed: "
smtplib.SMTPServerDisconnected: Connection unexpectedly closed: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/logging/__init__.py", line 1081, in emit
msg = self.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 925, in format
return fmt.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 664, in format
record.message = record.getMessage()
File "/usr/lib/python3.8/logging/__init__.py", line 369, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.8/unittest/__main__.py", line 18, in <module>
main(module=None)
File "/usr/lib/python3.8/unittest/main.py", line 101, in __init__
self.runTests()
File "/usr/lib/python3.8/unittest/main.py", line 271, in runTests
self.result = testRunner.run(self.test)
File "/usr/lib/python3.8/unittest/runner.py", line 176, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/case.py", line 736, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/case.py", line 676, in run
self._callTestMethod(testMethod)
File "/usr/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
method()
File "/chiadog/tests/notifier/test_smtp_notifier.py", line 51, in testSMTPNormalPriorityNotifications
success = self.notifier.send_events_to_user(events=DummyEvents.get_normal_priority_events())
File "/chiadog/src/notifier/smtp_notifier.py", line 65, in send_events_to_user
logging.error("SMTP Notify Error: ", e)
Message: 'SMTP Notify Error: '
Arguments: (SMTPServerDisconnected('Connection unexpectedly closed: timed out'),)
F--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.8/smtplib.py", line 391, in getreply
line = self.file.readline(_MAXLINE + 1)
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/chiadog/src/notifier/smtp_notifier.py", line 55, in send_events_to_user
server = smtplib.SMTP(self.host, self.port, timeout=self._conn_timeout_seconds)
File "/usr/lib/python3.8/smtplib.py", line 253, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python3.8/smtplib.py", line 341, in connect
(code, msg) = self.getreply()
File "/usr/lib/python3.8/smtplib.py", line 394, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed: "
smtplib.SMTPServerDisconnected: Connection unexpectedly closed: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/logging/__init__.py", line 1081, in emit
msg = self.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 925, in format
return fmt.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 664, in format
record.message = record.getMessage()
File "/usr/lib/python3.8/logging/__init__.py", line 369, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.8/unittest/__main__.py", line 18, in <module>
main(module=None)
File "/usr/lib/python3.8/unittest/main.py", line 101, in __init__
self.runTests()
File "/usr/lib/python3.8/unittest/main.py", line 271, in runTests
self.result = testRunner.run(self.test)
File "/usr/lib/python3.8/unittest/runner.py", line 176, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/case.py", line 736, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/case.py", line 676, in run
self._callTestMethod(testMethod)
File "/usr/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
method()
File "/chiadog/tests/notifier/test_smtp_notifier.py", line 56, in testSTMPHighPriorityNotifications
success = self.notifier.send_events_to_user(events=DummyEvents.get_high_priority_events())
File "/chiadog/src/notifier/smtp_notifier.py", line 65, in send_events_to_user
logging.error("SMTP Notify Error: ", e)
Message: 'SMTP Notify Error: '
Arguments: (SMTPServerDisconnected('Connection unexpectedly closed: timed out'),)
F--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.8/smtplib.py", line 391, in getreply
line = self.file.readline(_MAXLINE + 1)
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/chiadog/src/notifier/smtp_notifier.py", line 55, in send_events_to_user
server = smtplib.SMTP(self.host, self.port, timeout=self._conn_timeout_seconds)
File "/usr/lib/python3.8/smtplib.py", line 253, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python3.8/smtplib.py", line 341, in connect
(code, msg) = self.getreply()
File "/usr/lib/python3.8/smtplib.py", line 394, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed: "
smtplib.SMTPServerDisconnected: Connection unexpectedly closed: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/logging/__init__.py", line 1081, in emit
msg = self.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 925, in format
return fmt.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 664, in format
record.message = record.getMessage()
File "/usr/lib/python3.8/logging/__init__.py", line 369, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.8/unittest/__main__.py", line 18, in <module>
main(module=None)
File "/usr/lib/python3.8/unittest/main.py", line 101, in __init__
self.runTests()
File "/usr/lib/python3.8/unittest/main.py", line 271, in runTests
self.result = testRunner.run(self.test)
File "/usr/lib/python3.8/unittest/runner.py", line 176, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/case.py", line 736, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/case.py", line 676, in run
self._callTestMethod(testMethod)
File "/usr/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
method()
File "/chiadog/tests/notifier/test_smtp_notifier.py", line 46, in testSTMPLowPriorityNotifications
success = self.notifier.send_events_to_user(events=DummyEvents.get_low_priority_events())
File "/chiadog/src/notifier/smtp_notifier.py", line 65, in send_events_to_user
logging.error("SMTP Notify Error: ", e)
Message: 'SMTP Notify Error: '
Arguments: (SMTPServerDisconnected('Connection unexpectedly closed: timed out'),)
--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.8/smtplib.py", line 391, in getreply
line = self.file.readline(_MAXLINE + 1)
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/chiadog/src/notifier/smtp_notifier.py", line 55, in send_events_to_user
server = smtplib.SMTP(self.host, self.port, timeout=self._conn_timeout_seconds)
File "/usr/lib/python3.8/smtplib.py", line 253, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python3.8/smtplib.py", line 341, in connect
(code, msg) = self.getreply()
File "/usr/lib/python3.8/smtplib.py", line 394, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed: "
smtplib.SMTPServerDisconnected: Connection unexpectedly closed: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/logging/__init__.py", line 1081, in emit
msg = self.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 925, in format
return fmt.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 664, in format
record.message = record.getMessage()
File "/usr/lib/python3.8/logging/__init__.py", line 369, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.8/unittest/__main__.py", line 18, in <module>
main(module=None)
File "/usr/lib/python3.8/unittest/main.py", line 101, in __init__
self.runTests()
File "/usr/lib/python3.8/unittest/main.py", line 271, in runTests
self.result = testRunner.run(self.test)
File "/usr/lib/python3.8/unittest/runner.py", line 176, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/case.py", line 736, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/case.py", line 676, in run
self._callTestMethod(testMethod)
File "/usr/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
method()
File "/chiadog/tests/notifier/test_smtp_notifier.py", line 46, in testSTMPLowPriorityNotifications
success = self.notifier.send_events_to_user(events=DummyEvents.get_low_priority_events())
File "/chiadog/src/notifier/smtp_notifier.py", line 65, in send_events_to_user
logging.error("SMTP Notify Error: ", e)
Message: 'SMTP Notify Error: '
Arguments: (SMTPServerDisconnected('Connection unexpectedly closed: timed out'),)
F
======================================================================
FAIL: testSMTPNormalPriorityNotifications (tests.notifier.test_smtp_notifier.TestSMTPNotifier)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/chiadog/tests/notifier/test_smtp_notifier.py", line 52, in testSMTPNormalPriorityNotifications
self.assertTrue(success)
AssertionError: False is not true
======================================================================
FAIL: testSTMPHighPriorityNotifications (tests.notifier.test_smtp_notifier.TestSMTPNotifier)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/chiadog/tests/notifier/test_smtp_notifier.py", line 57, in testSTMPHighPriorityNotifications
self.assertTrue(success)
AssertionError: False is not true
======================================================================
FAIL: testSTMPLowPriorityNotifications (tests.notifier.test_smtp_notifier.TestSMTPNotifier)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/chiadog/tests/notifier/test_smtp_notifier.py", line 47, in testSTMPLowPriorityNotifications
self.assertTrue(success)
AssertionError: False is not true
----------------------------------------------------------------------
Ran 3 tests in 40.186s
FAILED (failures=3)
I actually called this out in #98 that ssl wouldnt work, only TLS.