yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #14784
[Bug 1324076] [NEW] Duplicated DELETE queries on sql backend
Public bug reported:
When trying to delete a consumer with OS-OAUTH1 extension, Keystone
sends twice a same delete sql query.
After a quick glance, it appears to me that this bug concerns several
keystone objects, at least request_token and access_token (OS-OAUTH1)
and identity_provider (OS-FEDERATION)
Example logs from keystone:
2014-05-28 13:02:33.424 7296 INFO sqlalchemy.engine.base.Engine [-] SELECT consumer.id AS consumer_id, consumer.description AS consumer_description, consumer.secret AS consumer_secret, consumer.extra AS consumer_extra
FROM consumer
WHERE consumer.id = %s
2014-05-28 13:02:33.424 7296 INFO sqlalchemy.engine.base.Engine [-] ('0cd89a4e04eb4066a78bd9e8727baa24',)
2014-05-28 13:02:33.424 7296 DEBUG sqlalchemy.engine.base.Engine [-] Col ('consumer_id', 'consumer_description', 'consumer_secret', 'consumer_extra') __init__ /usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/result.py:274
2014-05-28 13:02:33.425 7296 DEBUG sqlalchemy.engine.base.Engine [-] Row ('0cd89a4e04eb4066a78bd9e8727baa24', None, 'b196d850e18c4ea984e37861b6789966', '{}') process_rows /usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/result.py:771
2014-05-28 13:02:33.425 7296 INFO sqlalchemy.engine.base.Engine [-] DELETE FROM consumer WHERE consumer.id = %s
2014-05-28 13:02:33.425 7296 INFO sqlalchemy.engine.base.Engine [-] ('0cd89a4e04eb4066a78bd9e8727baa24',)
2014-05-28 13:02:33.426 7296 INFO sqlalchemy.engine.base.Engine [-] DELETE FROM consumer WHERE consumer.id = %s
2014-05-28 13:02:33.426 7296 INFO sqlalchemy.engine.base.Engine [-] ('0cd89a4e04eb4066a78bd9e8727baa24',)
/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py:116: SAWarning: DELETE statement on table 'consumer' expected to delete 1 row(s); 0 were matched. Please set confirm_deleted_rows=False within the mapper configuration to prevent this warning.
cached_connections, mapper, table, delete)
2014-05-28 13:02:33.427 7296 INFO sqlalchemy.engine.base.Engine [-] COMMIT
2014-05-28 13:02:33.572 7296 INFO eventlet.wsgi.server [-] 127.0.0.1 - - [28/May/2014 13:02:33] "DELETE /v3/OS-OAUTH1/consumers/0cd89a4e04eb4066a78bd9e8727baa24 HTTP/1.1" 204 103 0.167622
The problem seems to come from this code (almost identicaly on several places), where we can see the two delete actions:
consumer_ref = self._get_consumer(session, consumer_id)
q = session.query(Consumer)
q = q.filter_by(id=consumer_id)
q.delete(False)
session.delete(consumer_ref)
** Affects: keystone
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Keystone.
https://bugs.launchpad.net/bugs/1324076
Title:
Duplicated DELETE queries on sql backend
Status in OpenStack Identity (Keystone):
New
Bug description:
When trying to delete a consumer with OS-OAUTH1 extension, Keystone
sends twice a same delete sql query.
After a quick glance, it appears to me that this bug concerns several
keystone objects, at least request_token and access_token (OS-OAUTH1)
and identity_provider (OS-FEDERATION)
Example logs from keystone:
2014-05-28 13:02:33.424 7296 INFO sqlalchemy.engine.base.Engine [-] SELECT consumer.id AS consumer_id, consumer.description AS consumer_description, consumer.secret AS consumer_secret, consumer.extra AS consumer_extra
FROM consumer
WHERE consumer.id = %s
2014-05-28 13:02:33.424 7296 INFO sqlalchemy.engine.base.Engine [-] ('0cd89a4e04eb4066a78bd9e8727baa24',)
2014-05-28 13:02:33.424 7296 DEBUG sqlalchemy.engine.base.Engine [-] Col ('consumer_id', 'consumer_description', 'consumer_secret', 'consumer_extra') __init__ /usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/result.py:274
2014-05-28 13:02:33.425 7296 DEBUG sqlalchemy.engine.base.Engine [-] Row ('0cd89a4e04eb4066a78bd9e8727baa24', None, 'b196d850e18c4ea984e37861b6789966', '{}') process_rows /usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/result.py:771
2014-05-28 13:02:33.425 7296 INFO sqlalchemy.engine.base.Engine [-] DELETE FROM consumer WHERE consumer.id = %s
2014-05-28 13:02:33.425 7296 INFO sqlalchemy.engine.base.Engine [-] ('0cd89a4e04eb4066a78bd9e8727baa24',)
2014-05-28 13:02:33.426 7296 INFO sqlalchemy.engine.base.Engine [-] DELETE FROM consumer WHERE consumer.id = %s
2014-05-28 13:02:33.426 7296 INFO sqlalchemy.engine.base.Engine [-] ('0cd89a4e04eb4066a78bd9e8727baa24',)
/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py:116: SAWarning: DELETE statement on table 'consumer' expected to delete 1 row(s); 0 were matched. Please set confirm_deleted_rows=False within the mapper configuration to prevent this warning.
cached_connections, mapper, table, delete)
2014-05-28 13:02:33.427 7296 INFO sqlalchemy.engine.base.Engine [-] COMMIT
2014-05-28 13:02:33.572 7296 INFO eventlet.wsgi.server [-] 127.0.0.1 - - [28/May/2014 13:02:33] "DELETE /v3/OS-OAUTH1/consumers/0cd89a4e04eb4066a78bd9e8727baa24 HTTP/1.1" 204 103 0.167622
The problem seems to come from this code (almost identicaly on several places), where we can see the two delete actions:
consumer_ref = self._get_consumer(session, consumer_id)
q = session.query(Consumer)
q = q.filter_by(id=consumer_id)
q.delete(False)
session.delete(consumer_ref)
To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1324076/+subscriptions
Follow ups
References