[JBoss Remoting Development] - Memory leak by closed connections
by Rene Schneider
Rene Schneider [https://community.jboss.org/people/rschneider] created the discussion
"Memory leak by closed connections"
To view the discussion, visit: https://community.jboss.org/message/827298#827298
--------------------------------------------------------------
I found this bug (pretty sure about it being a bug, would love to directly file an issue in the issue tracker, but that doesn't seem to be possible without having some SalesForce "support case reference") when porting a real application which explicitly supports offline scenarios from JBoss 6 to 7.1.3:
When an EJB client gets disconnected from its JBoss 7 server, for example because that server has been shut down, but keeps running and eventually reconnects to the restarted server, a new org.jboss.remoting3.ConnectionImpl instance is created for that new connection. However, the old connection (with its state now being CLOSED) can never be garbage collected, since it is still referenced in the set "pendingInboundConnections" within its RemoteConnectionProvider (actually there are two more references to it preventing a GC, but those are in jboss-ejb-client, so they're probably off-topic in this discussion board - I'll start a similar thread there to get these addressed).
The connection is not removed from that set during its entire lifetime, neither after successfully establishing the connection nor after it has been closed. Thus, frequent disconnects between an EJB client and server eventually fill up the heap of the client with closed connections.
I attempted to come up with a solution to remove these dead connections from the set and found one which seems to be working in our application, albeit it's probably not the most elegant one; a patch file is attached to this posting.
Steps to reproduce the issue:
- Create an EJB client and service, deploy service in JBoss7
- Have the EJB client call the service on the server frequently
- Shut down the server. The client must be built to continue calling the server, even though exceptions are now thrown.
- Restart the server. The client will reconnect and continue without errors.
- Fetch a heap dump from the client and load it up in your favorite analyzer tool. There are now two connection objects in the heap, a closed one and an open one. Rinse and repeat for having 3,4,5,...
I can reproduce it most easily with the JBoss ejb-remote quickstart sample, modified to call the server repeatedly. The reference mentioned above is clearly visible in the heap dump.
The bug is definitely present in the most current final of Remoting 3, v3.2.16.GA, which I based my little patch on.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/827298#827298]
Start a new discussion in JBoss Remoting Development at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 4 months
[jBPM Development] - JBPM MultipleHuman Task..Task server restart not propagate the flow to next human task
by Deepraj Sawalkar
Deepraj Sawalkar [https://community.jboss.org/people/deepraj] created the discussion
"JBPM MultipleHuman Task..Task server restart not propagate the flow to next human task"
To view the discussion, visit: https://community.jboss.org/message/819826#819826
--------------------------------------------------------------
I have created one multiple human task in JBPM 5. The first human Task is "Financial Accounting Approval Task" having ActorId "#{finApprover}" and the second one is "Manger Approval Task" having ActorId "#{manager}".
When I run the MibBpmServiceProvider.java it successfully run the process and Task is shiowing as pending to FinancialApprover. Then complete the task then it is shiowing as pending to Manager. Then Manager can complete the task. It goes fine in this scenario.
Now the problem occours
1. I run the MibBpmServiceProvider.java it successfully run the process and Task is shiowing as pending to FinancialApprover.
2. *Now I stop the server which means stops the MinaTaskServer*.
3. Now I start the Task server again.
4. Check from Human Task View Editor there I found it is pending to FinancialApprover.
5. Start the task -> Complete the task for FinancialApprover.
6. Now Task is not in queue for FinancialApprover. *When I check the same task for Manager then I am not finding that task in Manager queue.*
*The issue occurs only when the task is pending to first human task and then stop the task server and start the task server and trying to exceute the first human task not propagate the flow to the next human task.*
**
I am attaching the bpmn file along with the bpmn image and java class. Can you please help me to sort out this issue.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/819826#819826]
Start a new discussion in jBPM Development at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 4 months