Transaction stored in queue got its value changed without any external application

Hi Everyone,
I have pushed a transaction into a queue
req_q[a].push_front(tr);
Value of variable tr.x was 1 during the push, but when popped out(pop_back) its value was 0. There was only 1 transaction pushed in and there was no other thread which could have changed its value but still when popped back the value changed.

Did anybody faced this issue?

Thanks.

In reply to ganesh shetti:

Make sure that you clone the transaction before pushing it on the queue. Reusing a transaction handle will overwrite the previous values.