fastmonkeys/stellar

There is 1 other session using the database error

orlando opened this issue ยท 15 comments

I'm getting this error when trying to snapshot a postgres database

/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
  """)

Traceback (most recent call last):
  File "/usr/local/bin/stellar", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/stellar/command.py", line 279, in main
    stellar()
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/stellar/command.py", line 60, in snapshot
    app = get_app()
  File "/usr/local/lib/python2.7/site-packages/stellar/command.py", line 28, in get_app
    app = Stellar()
  File "/usr/local/lib/python2.7/site-packages/stellar/app.py", line 45, in __init__
    self.init_database()
  File "/usr/local/lib/python2.7/site-packages/stellar/app.py", line 64, in init_database
    tables_missing = self.create_stellar_database()
  File "/usr/local/lib/python2.7/site-packages/stellar/app.py", line 72, in create_stellar_database
    self.operations.create_database('stellar_data')
  File "/usr/local/lib/python2.7/site-packages/stellar/operations.py", line 57, in create_database
    get_engine_url(raw_conn, database)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy_utils/functions/database.py", line 554, in create_database
    result_proxy = engine.execute(text)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2075, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 942, in execute
    return self._execute_text(object, multiparams, params)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1104, in _execute_text
    statement, parameters
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
    context)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
    exc_info
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) source database "template1" is being accessed by other users

DETAIL:  There is 1 other session using the database.
 [SQL: "CREATE DATABASE stellar_data ENCODING 'utf8' TEMPLATE template1"] (Background on this error at: http://sqlalche.me/e/e3q8)

The source database is not being used when doing the backup.

I'm running Mac OS 10.13.4, probably with the default python version (2.7.14)

I'm getting this too. It appears the issue is caused by an update to SQLAlchemy.

You can work around this by running: pip install SQLAlchemy==1.2.5 SQLAlchemy-Utils==0.33.1

Hmm, I still get this error even after installing the versions of SQLAlchemy @kaedroho suggests.

Thanks for reporting the issue.

I quickly reinstalled stellar on my Mac but failed to reproduce this issue. The error message says that there is some other session going on that database. The other session can come from stellar itself(=same process), or from some other process(=stuck? stellar background process). Can you try to check if there was some sql process going before running the stellar command? So run psql -c "select * from pg_stat_activity where datname='stellar_data'". If that doesn't reveal anything then the stellar itself is likely the cause.

Can you also just paste pip freeze so that I can install the exactly same dependencies incase those are somehow related to this issue?

I have the same problem . here is the log

psql -c "select * from pg_stat_activity where datname='stellar_data'"

 datid | datname | pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | xact_start | query_start | state_change | wait_event_type | wait_event | state | backend_xid | backend_xmin | query | backend_type 
-------+---------+-----+----------+---------+------------------+-------------+-----------------+-------------+---------------+------------+-------------+--------------+-----------------+------------+-------+-------------+--------------+-------+--------------
(0 rows)

stellar snapshot

es@dc075:~$ stellar snapshot
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
psycopg2.OperationalError: source database "template1" is being accessed by other users
DETAIL:  There is 1 other session using the database.


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/bin/stellar", line 11, in <module>
    load_entry_point('stellar==0.4.5', 'console_scripts', 'stellar')()
  File "/usr/local/lib/python3.6/dist-packages/stellar/command.py", line 279, in main
    stellar()
  File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/stellar/command.py", line 60, in snapshot
    app = get_app()
  File "/usr/local/lib/python3.6/dist-packages/stellar/command.py", line 28, in get_app
    app = Stellar()
  File "/usr/local/lib/python3.6/dist-packages/stellar/app.py", line 45, in __init__
    self.init_database()
  File "/usr/local/lib/python3.6/dist-packages/stellar/app.py", line 64, in init_database
    tables_missing = self.create_stellar_database()
  File "/usr/local/lib/python3.6/dist-packages/stellar/app.py", line 72, in create_stellar_database
    self.operations.create_database('stellar_data')
  File "/usr/local/lib/python3.6/dist-packages/stellar/operations.py", line 57, in create_database
    get_engine_url(raw_conn, database)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy_utils/functions/database.py", line 554, in create_database
    result_proxy = engine.execute(text)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 2075, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 942, in execute
    return self._execute_text(object, multiparams, params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1104, in _execute_text
    statement, parameters
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
    context)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
    exc_info
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 186, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) source database "template1" is being accessed by other users
DETAIL:  There is 1 other session using the database.
 [SQL: "CREATE DATABASE stellar_data ENCODING 'utf8' TEMPLATE template1"] (Background on this error at: http://sqlalche.me/e/e3q8)

pip freeze

pip3 freeze
acme==0.22.2
apturl==0.5.2
asn1crypto==0.24.0
Brlapi==0.6.6
certbot==0.23.0
certbot-nginx==0.23.0
certifi==2018.1.18
chardet==3.0.4
click==6.7
command-not-found==0.3
ConfigArgParse==0.11.0
configobj==5.0.6
cryptography==2.1.4
cupshelpers==1.0
defer==1.0.6
distro-info==0.18
ewmh==0.1.5
future==0.15.2
httplib2==0.9.2
humanize==0.5.1
idna==2.6
josepy==1.1.0
keyring==10.6.0
keyrings.alt==3.0
language-selector==0.1
launchpadlib==1.10.6
lazr.restfulclient==0.13.5
lazr.uri==1.0.3
louis==3.5.0
macaroonbakery==1.1.3
Mako==1.0.7
MarkupSafe==1.0
mock==2.0.0
notify2==0.3
oauth==1.0.1
olefile==0.45.1
parsedatetime==2.4
pbr==3.1.1
pexpect==4.2.1
Pillow==5.1.0
protobuf==3.0.0
psutil==5.4.2
psycopg2==2.7.4
psycopg2-binary==2.7.4
pycairo==1.16.2
pycrypto==2.6.1
pycups==1.9.73
pygobject==3.26.1
PyICU==1.9.8
pymacaroons==0.13.0
PyNaCl==1.1.2
pyOpenSSL==17.5.0
pyparsing==2.2.0
pyRFC3339==1.0
python-apt==1.6.0
python-debian==0.1.32
python-xapp==1.0.0
python-xlib==0.20
pytz==2018.3
pyudev==0.21.0
pyxattr==0.6.0
pyxdg==0.25
PyYAML==3.12
reportlab==3.4.0
requests==2.18.4
requests-unixsocket==0.1.5
schema==0.6.7
SecretStorage==2.3.1
setproctitle==1.1.10
simplejson==3.13.2
six==1.11.0
SQLAlchemy==1.2.6
SQLAlchemy-Utils==0.33.2
ssh-import-id==5.7
stellar==0.4.5
system-service==0.3
systemd-python==234
ubuntu-drivers-common==0.0.0
ufw==0.35
unattended-upgrades==0.1
urllib3==1.22
usb-creator==0.3.3
virtualenv==15.1.0
wadllib==1.3.2
xkit==0.0.0
youtube-dl==2018.3.14
zope.component==4.3.0
zope.event==4.2.0
zope.hookable==4.0.4
zope.interface==4.3.2


@jalada Sorry, I posted the wrong version. I've updated my original comment.

SQLAlchemy 1.2.6 and above have this issue. It can be worked around for now by downgrading to 1.2.5 (pip install SQLAlchemy==1.2.5 SQLAlchemy-Utils==0.33.1).

yes ,pip install SQLAlchemy==1.2.5 SQLAlchemy-Utils==0.33.1 works! , @kaedroho thanks

I'm also getting this issue, but @kaedroho's fix worked!

Snap, thanks @kaedroho!

I tried to install the mentioned version of SQLAlchemy but I can't still reproduce the issue for some reason.

~/Documents/stellar-test pip freeze|grep SQLA
SQLAlchemy==1.2.7
SQLAlchemy-Utils==0.33.3
~/Documents/stellar-test stellar snapshot asd   
Snapshotting database foobar
~/Documents/stellar-test stellar list
asd: 15 seconds ago
~/Documents/stellar-test 
madis commented

Well I can reproduce it very vividly:

โฏ stellar list
/usr/local/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
  """)
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
psycopg2.OperationalError: source database "template1" is being accessed by other users
DETAIL:  There is 1 other session using the database.


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/bin/stellar", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/site-packages/stellar/command.py", line 279, in main
    stellar()
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/stellar/command.py", line 76, in list
    snapshots = get_app().get_snapshots()
  File "/usr/local/lib/python3.6/site-packages/stellar/command.py", line 28, in get_app
    app = Stellar()
  File "/usr/local/lib/python3.6/site-packages/stellar/app.py", line 45, in __init__
    self.init_database()
  File "/usr/local/lib/python3.6/site-packages/stellar/app.py", line 64, in init_database
    tables_missing = self.create_stellar_database()
  File "/usr/local/lib/python3.6/site-packages/stellar/app.py", line 72, in create_stellar_database
    self.operations.create_database('stellar_data')
  File "/usr/local/lib/python3.6/site-packages/stellar/operations.py", line 57, in create_database
    get_engine_url(raw_conn, database)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy_utils/functions/database.py", line 554, in create_database
    result_proxy = engine.execute(text)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2075, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 942, in execute
    return self._execute_text(object, multiparams, params)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1104, in _execute_text
    statement, parameters
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
    context)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
    exc_info
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) source database "template1" is being accessed by other users
DETAIL:  There is 1 other session using the database.
 [SQL: "CREATE DATABASE stellar_data ENCODING 'utf8' TEMPLATE template1"] (Background on this error at: http://sqlalche.me/e/e3q8)

โฏ pip install SQLAlchemy==1.2.5 SQLAlchemy-Utils==0.33.1
Collecting SQLAlchemy==1.2.5
  Downloading https://files.pythonhosted.org/packages/7e/57/435347429f4ff5016b72c9b179c70a6cc67e5f9b4d3f3e9b51362c40b356/SQLAlchemy-1.2.5.tar.gz (5.6MB)
    100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 5.6MB 6.9MB/s
Collecting SQLAlchemy-Utils==0.33.1
  Downloading https://files.pythonhosted.org/packages/fc/3d/0e7146d6c017e2aa16f2530d31d73c9de715ab823c86a988776b251374ca/SQLAlchemy-Utils-0.33.1.tar.gz (124kB)
    100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 133kB 6.6MB/s
Requirement already satisfied: six in /usr/local/lib/python3.6/site-packages (from SQLAlchemy-Utils==0.33.1) (1.11.0)
Building wheels for collected packages: SQLAlchemy, SQLAlchemy-Utils
  Running setup.py bdist_wheel for SQLAlchemy ... done
  Stored in directory: /Users/madis/Library/Caches/pip/wheels/7f/47/19/9d21adcd1f537063d81e00b933df6c58c9cd4d278bfb500bb5
  Running setup.py bdist_wheel for SQLAlchemy-Utils ... done
  Stored in directory: /Users/madis/Library/Caches/pip/wheels/10/b3/40/f1295dc376cb87cdbda3b44b20a50a2b8b622bafd8396c7039
Successfully built SQLAlchemy SQLAlchemy-Utils
Installing collected packages: SQLAlchemy, SQLAlchemy-Utils
  Found existing installation: SQLAlchemy 1.2.7
    Uninstalling SQLAlchemy-1.2.7:
      Successfully uninstalled SQLAlchemy-1.2.7
  Found existing installation: SQLAlchemy-Utils 0.33.3
    Uninstalling SQLAlchemy-Utils-0.33.3:
      Successfully uninstalled SQLAlchemy-Utils-0.33.3
Successfully installed SQLAlchemy-1.2.5 SQLAlchemy-Utils-0.33.1

โฏ stellar list
/usr/local/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
  """)

โฏ python --version
Python 3.6.4

โฏ pip --version
pip 10.0.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
frjo commented

The difference may be the Postgresql version.

I had SQLAlchemy1.2.9 and SQLAlchemy-Utils 0.33.3 and they worked without issue using Postgresql 9.6.

After I upgraded to Postgresql 10.5 I got the same "source database "template1" is being accessed by other users" error as above. (via Homebrew on macOS 10.13.6 using Stellar 0.4.5)

After finding this issue I tested do downgraded to SQLAlchemy 1.2.5 and SQLAlchemy-Utils 0.33.1 as suggested and I got a working stellar again.

Also happens to me with stellar 0.4.5/Python 3.6.7/Ubuntu 18.04/pip 18.1/PostgreSQL 10.6
Downgrading to SQLAlchemy==1.2.5 and SQLAlchemy-Utils==0.33.1 fixed it

Same here.... stellar 0.4.5/Python 3.6.7/pip3 9.0.1/psql 10.8
Downgrading as mentioned above fixed it too.

This is workaround for me:
connect to postgres db, ie. :
su - postgres
then connect to db:
psql
and execute
CREATE DATABASE stellar_data ENCODING 'utf8' TEMPLATE template1 owner **$USER**;

where $USER is your DB user name stellar is working with (needs corresponding privileges obviously)
Stellar will create missing tables at first snapshot and it work's for me with SQLAlchemy ==1.3.6

@nick4u, thank you, that seems to be the most correct solution.