[OPNFLWPLUG-370] of-flow: connecting 256 switches makes odl unusualbe with default memory settings Created: 26/Feb/15  Updated: 27/Sep/21  Resolved: 27/May/15

Status: Resolved
Project: OpenFlowPlugin
Component/s: General
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Peter Gubka Assignee: Unassigned
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: File 256sw.tar.xz    
External issue ID: 2765

 Description   

when i connect and disconnect 256 switches (and ask for operational data for all swithes) then the next tests are affected with lots of errors, and configured flows are not present on the switch

content of karaf.out:

Exception in thread "fileinstall-/home/odl/distribution-karaf-0.3.0-SNAPSHOT/etc" Exception in thread "qtp1414614368-92" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "qtp1414614368-14665" at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "fileinstall-/home/odl/distribution-karaf-0.3.0-SNAPSHOT/etc"
Exception in thread "qtp1414614368-91" Exception in thread "qtp1414614368-14669" Exception in thread "Thread-2" java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded

VM:
16G ram;
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

odl: https://jenkins.opendaylight.org/integration/view/All/job/integration-master-project-centralized-integration/3256/

the only installed feature was odl-openflowplugin-all

used default settings (2G heap; 512M perm size)

steps to reproduce:
1) simply connect 256 swithces with mininet and check if they are connected; then disconnect (no flows installed here)
2) run any suite which will install flows and repeat it 1-5 times; till you have bad results

i did it like this:
1) pybot -v CONTROLLER:10.25.2.9 -v MININET:127.0.0.1 -v MININET_USER:mininet -v USER_HOME:/home/mininet -v RESTCONFPORT:8181 -v PORT:8181 -v TOPO_TREE_DEPTH:1 tools/OF_Test/robot_suites/998_Independent_OF_Tests_ovs/010_Connect_256_Switches.txt
2) (repeat; i did 2x) pybot -v CONTROLLER:10.25.2.9 -v MININET:127.0.0.1 -v MININET_USER:mininet -v USER_HOME:/home/mininet -v RESTCONFPORT:8181 -v PORT:8181 -v TOPO_TREE_DEPTH:1 csit/suites/openflowplugin/Flows_Stats_OF13/

even the log karaf.out shows OutOfMemory exception, i do not expect that simply connecting 256 switches and the requiest for the operational data in such state can consume whole heap (only 256 swithces without any installed flows)

this bug can be related to https://bugs.opendaylight.org/show_bug.cgi?id=2729
there is also 250 switches used and the problems appear when stats(operational data) are requests



 Comments   
Comment by Peter Gubka [ 26/Feb/15 ]

Attachment 256sw.tar.xz has been added with description: logs

Comment by Peter Gubka [ 27/May/15 ]

as there is not any "required" or "declared" number, which
should be supported, i am closing this bug

the following job measure the number of supported nodes

https://jenkins.opendaylight.org/releng/view/openflowplugin/job/openflowplugin-csit-periodic-1node-cds-scalability-daily-only-master/plot/Inventory%20Scalability/

Generated at Wed Feb 07 20:32:17 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.