[
https://issues.apache.org/jira/browse/AMBARI-16242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15270204#comment-15270204
]
Nitiraj Singh Rathore commented on AMBARI-16242:
------------------------------------------------
A patch has been submitted with following changes :
Now the id is generated using table_sequence techique of JPA. table for
sequence is ambari_sequence. UpgradeCatalog240.java will add the current
sequence number for existing tables and for new table the sequence name will be
added automatically. As sequence size of 50 is provided for better performances
Following manual testing has been done.
1. upgrade script creates correct current sequences. Done by manually upgrading
old ambari with existing views. Next job will allocate 50 more ids
2. for new tables the entry in ambari_sequence is automatically added and the
ids will start from 1.
> Hive View and Pig View : one user overriding job details of other user in
> database
> ----------------------------------------------------------------------------------
>
> Key: AMBARI-16242
> URL: https://issues.apache.org/jira/browse/AMBARI-16242
> Project: Ambari
> Issue Type: Bug
> Components: ambari-views
> Affects Versions: 2.2.2
> Reporter: Nitiraj Singh Rathore
> Assignee: Nitiraj Singh Rathore
> Fix For: 2.4.0
>
> Attachments: AMBARI-16242_trunk.patch
>
>
> Steps to reproduce.
> 0. create a new hive view for better understanding. Note the table names
> created in DB for this instance.
> 1. Login with user one (admin).
> 2. execute one hive query
> 3. go to database and note the new entries in ds_jobimpl_ and
> dsf_storedoperationhandle_ tables.
> 4. Login in with another use say (testUser)
> 5. execute one hive query
> 6. go to database and check the entries in ds_jobimpl_ and
> dsf_storedoperationhandle_ tables.
> you will find that the entries of admin were overridden by queries of
> testUser instead of creating 2 separate entries.
> Reason :
> For creating any entity in database. Hive and Pig view are generating the IDs
> in the code itself.
> The code that generates IDs is wrong. It keeps a key for each entity and
> increments the counter for it for next entity. This key value pair is stored
> in context.putInstanceData.
> This instance data is inherently User dependent. So there is separate counter
> for each user. But the tables ds_jobimpl etc of hive and pig assumes unique
> ID across all users. So the queries of one user are getting overridden by
> another.
> Implications :
> The implications of this can be very bad. The effects will be not very
> visible if users execute queries serially but if they execute queries
> simultaneously then on the fly the users will keep replacing the entries
> which have state session data and operation handle of each other and will
> results in many exceptions and errors.
> Probably, many of the current exceptions of hive view might be because of
> this bug.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)