Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1063064 - [engine][network] Allow big ranges in MacPoolManager
Summary: [engine][network] Allow big ranges in MacPoolManager
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: oVirt
Classification: Retired
Component: ovirt-engine-core
Version: 3.4
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: 3.5.0
Assignee: Martin Mucha
QA Contact: Michael Burman
URL:
Whiteboard: network
Depends On:
Blocks: 1077284
TreeView+ depends on / blocked
 
Reported: 2014-02-09 19:55 UTC by Mike Kolesnik
Modified: 2016-02-10 19:38 UTC (History)
10 users (show)

Fixed In Version: ovirt-engine-3.5.0_beta
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1077284 (view as bug list)
Environment:
Last Closed: 2014-10-17 12:31:05 UTC
oVirt Team: Network


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
oVirt gerrit 25940 master MERGED core: performance improvement Never
oVirt gerrit 25941 None ABANDONED core: use 'this' to get 'this'. Never
oVirt gerrit 25942 None ABANDONED core: MacPoolManager strategy, alternative implementation, test for benchmarks Never
oVirt gerrit 26400 master MERGED core: extract current implementation to strategy. Never
oVirt gerrit 26401 master MERGED core: added constructor and toString() to Pair.java Never
oVirt gerrit 26402 master MERGED core: wrapper of HashMap for counting number of objects Never
oVirt gerrit 26403 master MERGED core: util for removing overlaps in ranges Never
oVirt gerrit 26404 master MERGED core: few fixes in MacAddressRangeUtils.java Never
oVirt gerrit 26405 master MERGED core: MacPoolManager strategy, alternative implementation Never

Description Mike Kolesnik 2014-02-09 19:55:30 UTC
Description of problem:
When trying to initialize a large range, for example 00:1A:4A:01:00:00-00:1A:4A:FF:FF:FF, with a large MaxMacsCountInPool value, an OOM error would occur.


Version-Release number of selected component (if applicable):


How reproducible:
100%


Steps to Reproduce:
1. engine-config -s MaxMacsCountInPool=16777216
2. engine-config -s MacPoolRanges=00:1A:4A:01:00:00-00:1A:4A:FF:FF:FF
3. start the engine

Actual results:
You will see in the log something similar to 
2014-02-09 19:57:44,368 INFO  [org.ovirt.engine.core.bll.network.MacPoolManager] (org.ovirt.thread.pool-4-thread-1) MacPoolManager(4dccea71): Start initializing

Later the initialization would fail (no log for this though) and you would start seeing OutOfMemoryError popping up during the application run.

Expected results:
The MacPoolManager should finish initializing (shouldn't take very long).


Additional info:
The internal implementation of MacPoolManager should be changed to something more CU & memory efficient that a set containing all unallocated MACs.

Comment 1 Sandro Bonazzola 2014-10-17 12:31:05 UTC
oVirt 3.5 has been released and should include the fix for this issue.


Note You need to log in before you can comment on or make changes to this bug.