Skip to content

MemoryError not handled #185

@akuzminsky

Description

@akuzminsky
  • TwinDB Backup version: 2.18.1
  • Operating System: Ubuntu 16.04.2 LTS

Description

I tried to run twindb-backup on a t3.nano instance, and apparently 500MB is not enough to start it.

Instead of stack trace it should catch the exception and recommend how to enable swap or give minimal memory requirements.

What I Did

# free -m
              total        used        free      shared  buff/cache   available
Mem:            466         148         112           5         206         285
Swap:             0           0           0

# twindb-backup backup daily
Traceback (most recent call last):
  File "/usr/bin/twindb-backup", line 9, in <module>
    load_entry_point('twindb-backup==2.18.1', 'console_scripts', 'twindb-backup')()
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/twindb_backup/cli.py", line 127, in backup
    binlogs_only=binlogs_only
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/twindb_backup/backup.py", line 382, in run_backup_job
    binlogs_only=binlogs_only
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/twindb_backup/backup.py", line 320, in backup_everything
    backup_files(run_type, twindb_config)
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/twindb_backup/backup.py", line 101, in backup_files
    _backup_stream(config, src, dst)
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/twindb_backup/backup.py", line 84, in _backup_stream
    dst.save(stream, src.get_name())
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/twindb_backup/destination/s3.py", line 371, in save
    ret = self._upload_object(file_obj, filepath)
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/twindb_backup/destination/s3.py", line 469, in _upload_object
    Config=s3_transfer_config)
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/boto3/s3/inject.py", line 539, in upload_fileobj
    return future.result()
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/s3transfer/futures.py", line 106, in result
    return self._coordinator.result()
  File "/opt/twindb-backup/embedded/lib/python2.7/site-packages/s3transfer/futures.py", line 265, in result
    raise self._exception
MemoryError

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions