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.
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.
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.