Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Revisions: Issue #39362 All Revisions ] Back to Issue ]
Summary 0039362: if ticket fails to be created due to no DB connections, no more tickets can be created from same terminal
Revision 2018-09-27 15:57 by alostale
Steps To Reproduce Because it only happens under some race conditions, it cannot be easily reproduced. We can emulate these conditions as follows:

  1. Apply patch consume-all-connections.diff
  2. Set breakpoints to manually synchronize actions, in (line numbers from pi@fabe6e99f181):
       * About - line 60. Just when we exhausted the pool
       * ImportEntryProcessor - line 330. Start of doRunCycle
       * ImportEntryProcessor - line 441. Start of main catch block
  3. In WebPOS create a ticket
     -> It will stop in ImportEntryProcessor 330
  4. In backoffice open About popup
     -> It will consume all avaiable connections and stop in breakpoint
  5. Resume thread stopped in 3 keeping stopped the one in About
     -> It will fail and stop in ImportEntryProcessor 441
  6. Resume thread in About
     -> Connections are released
  7. Resume thread in ImportEntryProcessor
     -> The entry is marked as error
  8. Create more tickets from same terminal (no need of any breakpoint)
     -> Check: all these new tickets are set in error in Data Import Entries window

Note pool cat get exhausted because of reaching pool limit or by reaching limit of physical DB connections, in latter case exception is dbms specific.
Revision 2018-09-27 14:57 by alostale
Steps To Reproduce Because it only happens under some race conditions, it cannot be easily reproduced. We can emulate these conditions as follows:

  1. Apply patch consume-all-connections.diff
  2. Set breakpoints to manually synchronize actions, in (line numbers from pi@fabe6e99f181):
       * About - line 60. Just when we exhausted the pool
       * ImportEntryProcessor - line 330. Start of doRunCycle
       * ImportEntryProcessor - line 441. Start of main catch block
  3. In WebPOS create a ticket
     -> It will stop in ImportEntryProcessor 330
  4. In backoffice open About popup
     -> It will consume all avaiable connections and stop in breakpoint
  5. Resume thread stopped in 3 keeping stopped the one in About
     -> It will fail and stop in ImportEntryProcessor 441
  6. Resume thread in About
     -> Connections are released
  7. Resume thread in ImportEntryProcessor
     -> The entry is marked as error
  8. Create more tickets from same terminal (no need of any breakpoint)
     -> Check: all these new tickets are set in error in Data Import Entries window
Revision 2018-09-27 14:57 by alostale
Steps To Reproduce Because it only happens under some race conditions, it cannot be easily reproduced. We can emulate these conditions as follows:

1. Apply patch consume-all-connections.diff
2. Set breakpoints to manually synchronize actions, in (line numbers from pi@fabe6e99f181):
     * About - line 60. Just when we exhausted the pool
     * ImportEntryProcessor - line 330. Start of doRunCycle
     * ImportEntryProcessor - line 441. Start of main catch block
3. In WebPOS create a ticket
   -> It will stop in ImportEntryProcessor 330
4. In backoffice open About popup
   -> It will consume all avaiable connections and stop in breakpoint
5. Resume thread stopped in 3 keeping stopped the one in About
   -> It will fail and stop in ImportEntryProcessor 441
6. Resume thread in About
   -> Connections are released
7. Resume thread in ImportEntryProcessor
   -> The entry is marked as error
8. Create more tickets from same terminal (no need of any breakpoint)
   -> Check: all these new tickets are set in error in Data Import Entries window
Revision 2018-09-27 14:52 by alostale
Steps To Reproduce Because it only happens under some race conditions, it cannot be easily reproduced. We can emulate these conditions as follows:

1. Apply patch consume-all-connections.diff
2. Set breakpoints in (line numbers with pi@fabe6e99f181):
     * About - line 60. Just when we exhausted the pool
     * ImportEntryProcessor - line 330. Start of doRunCycle
3. In WebPOS create a ticket
   -> It will stop in ImportEntryProcessor 330
4. In backoffice open About popup
   -> It will consume all avaiable connections and stop in breakpoint
5. Resume thread stopped in 3
6. Create more tickets from same terminal
   -> Check: all these new tickets are set in error in Data Import Entries window


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker