frappe / erpnext

Free and Open Source Enterprise Resource Planning (ERP)
https://erpnext.com
GNU General Public License v3.0
20.98k stars 7.2k forks source link

Dropbox backup error - ordinal not in range #7070

Closed sp9leo closed 7 years ago

sp9leo commented 7 years ago

Hi

I'm getiting following dropbox error in error log. Backups are working fine. Is this a filename or doctype name error due to latin letter "ž" or is it a bug? Some guideance to point me in the right direction of searching for error is appreciated. Running latest version on virtualbox.

{'retry': 0, 'log': <function log at 0xb712c614>, 'site': u'erpnext.vm', 'event': u'daily_long', 'method_name': u'frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily', 'method': <function take_backups_daily at 0xb713b79c>, 'user': u'Administrator', 'kwargs': {}, 'async': True, 'job_name': u'frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily'} Traceback (most recent call last): File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 61, in execute_job method(**kwargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 158, in take_backups_daily take_backups_if("Daily") File "/home/frappe/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 165, in take_backups_if take_backup_to_dropbox() File "/home/frappe/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 178, in take_backup_to_dropbox frappe.errprint(error_message) File "/home/frappe/frappe-bench/apps/frappe/frappe/init.py", line 230, in errprint print cstr(msg) UnicodeEncodeError: 'ascii' codec can't encode character u'\u017d' in position 6: ordinal not in range(128)

https://discuss.erpnext.com/t/error-log-ordinal-not-in-range/17939

smayar commented 7 years ago

Now getting this error:

{'retry': 0, 'log': <function log at 0x7f58452ef488>, 'site': u'portal.zarvanservices.com', 'event': None, 'method_name': u'frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backup_to_dropbox', 'method': <function take_backup_to_dropbox at 0x7f5845309cf8>, 'user': u'Administrator', 'kwargs': {}, 'async': True, 'job_name': u'frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backup_to_dropbox'}
Traceback (most recent call last):
  File "/home/ubuntu/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 61, in execute_job
    method(**kwargs)
  File "/home/ubuntu/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 190, in take_backup_to_dropbox
    send_email(False, "Dropbox", error_message)
  File "/home/ubuntu/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 213, in send_email
    frappe.sendmail(recipients=recipients, subject=subject, message=message)
  File "/home/ubuntu/frappe-bench/apps/frappe/frappe/__init__.py", line 411, in sendmail
    communication=communication, now=now)
TypeError: send() got an unexpected keyword argument 'now'
rmehta commented 7 years ago

you have to restart your bench, your deploy seems broken.

smayar commented 7 years ago

I have restart the bench bench restart sudo supervisorctl restart all no success, still getting the same error

sp9leo commented 7 years ago

I'm also still getting errors in error log. Version 7.1.25. Backups are working fine.

{'retry': 0, 'log': <function log at 0x7fccba5377d0>, 'site': u'formis.local', 'event': u'daily_long', 'method_name': u'frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily', 'method': <function take_backups_daily at 0x7fccb612fb18>, 'user': u'Administrator', 'kwargs': {}, 'async': True, 'job_name': u'frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily'} Traceback (most recent call last): File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 61, in execute_job method(**kwargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 158, in take_backups_daily take_backups_if("Daily") File "/home/frappe/frappe- bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 165, in take_backups_if take_backup_to_dropbox() File "/home/frappe/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 178, in take_backup_to_dropbox frappe.errprint(error_message) File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 230, in errprint print cstr(msg) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

rmehta commented 7 years ago

@sp9leo This is fixed in v7.2.0-beta and develop

@smayar you might have to dig deeper. now is definitely declared in the send function

https://github.com/frappe/frappe/blob/develop/frappe/email/queue.py#L19

smayar commented 7 years ago

@rmehta after update the queue.py now getting new error: {'retry': 0, 'log': <function log at 0x7fe370893488>, 'site': u'erp.local', 'event': None, 'method_name': u'frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backup_to_dropbox', 'method': <function take_backup_to_dropbox at 0x7fe3708a9cf8>, 'user': u'Administrator', 'kwargs': {}, 'async': True, 'job_name': u'frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backup_to_dropbox'} Traceback (most recent call last): File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 61, in execute_job method(**kwargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 190, in take_backup_to_dropbox send_email(False, "Dropbox", error_message) File "/home/frappe/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 213, in send_email frappe.sendmail(recipients=recipients, subject=subject, message=message) File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 411, in sendmail communication=communication, now=now) File "/home/frappe/frappe-bench/apps/frappe/frappe/email/queue.py", line 88, in send unsubscribe_method=unsubscribe_method, unsubscribe_params=unsubscribe_params, expose_recipients=expose_recipients) File "/home/frappe/frappe-bench/apps/frappe/frappe/email/queue.py", line 104, in add cc=cc, email_account=email_account, expose_recipients=expose_recipients) TypeError: get_email() got an unexpected keyword argument 'expose_recipients'

rmehta commented 7 years ago

@smayar Seems like you are merging on your own. Please read the trace and fix your issue.

smayar commented 7 years ago

@rmehta after i have updated my ERPNext and Frappe to the latest version: ERPNext: v7.2.1 Frappe Framework: v7.2.1 Now I'm getting [Warning] Backup Upload Failed email after click on Take Backup Now on dropbox settings Backup Upload Failed Oops, your automated backup to Dropbox failed. Error message:

تذکره محمودی.jpg - Traceback (most recent call last):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 324, in upload_from_folder
    dropbox_client = upload_file_to_dropbox(filepath, dropbox_folder, dropbox_client)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 261, in upload_file_to_dropbox
    with open(filename, 'r') as f:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 42-46: ordinal not in range(128)

Traceback (most recent call last):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py", line 183, in take_backup_to_dropbox
    if did_not_upload: raise Exception
Exception

Please contact your system manager for more information.`

rmehta commented 7 years ago

Pushed another fix in develop can you try again?

smayar commented 7 years ago

@rmehta YESSS now it's solved