8000 call munmap more frequently? · Issue #48 · arangodb/arangodb · GitHub
[go: up one dir, main page]

Skip to content

call munmap more frequently? #48

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jsteemann opened this issue Apr 11, 2012 · 4 comments
Closed

call munmap more frequently? #48

jsteemann opened this issue Apr 11, 2012 · 4 comments
Assignees
Milestone

Comments

@jsteemann
Copy link
Contributor

I cannot run the AvocadoDB unittests on my 32 bit laptop.
At some point during the test execution I am encountering mmap errors. mmap fails when creating datafiles and the database reports "cannot allocate memory".

I have marked all mmap and munmap calls to report the cumulated size of mapped memory.
Results below for running "make unittests":

|| SHELL SERVER TESTS ||

./avocado "/tmp/vocdir.28161" --unit-tests ./js/server/tests/shell-document.js --unit-tests ./js/server/tests/shell-collection.js --unit-tests ./js/server/tests/aql-simple.js --unit-tests ./js/server/tests/aql-keywords.js --unit-tests ./js/server/tests/aql-bind.js --unit-tests ./js/server/tests/aql-joins.js --unit-tests ./js/server/tests/aql-operators.js --unit-tests ./js/server/tests/aql-indexes.js
2012-04-11T15:40:10Z [28222] INFO no user init file '/home/steemann/.avocado/avocado.conf' found
2012-04-11T15:40:10Z [28222] INFO no system init file '/usr/local/etc/avocado.conf' found
2012-04-11T15:40:10Z [28222] INFO using built-in JavaScript startup files
2012-04-11T15:40:10Z [28222] INFO using database action files at '/tmp/vocdir.28161/_ACTIONS'
2012-04-11T15:40:10Z [28222] INFO using system action files at '/usr/local/share/avocado/js/actions/system'
2012-04-11T15:40:10Z [28222] INFO using JavaScript modules path '/usr/local/share/avocado/js/server/modules;/usr/local/share/avocado/js/common/modules'
AvocadoDB shell [V8 version 3.9.4, DB version 0.3.7]
2012-04-11T15:40:10Z [28222] INFO Running collectionDocumentSuiteErrorHandling
2012-04-11T15:40:10Z [28222] INFO 3 tests found

MMAP: total mmaped size is now: 2465792

MMAP: total mmaped size is now: 36020224

MMAP: total mmaped size is now: 69574656
2012-04-11T15:40:10Z [28222] INFO [PASSED] testErrorHandlingBadHandle

MMAP: total mmaped size is now: 72040448

MMAP: total mmaped size is now: 105594880

MMAP: total mmaped size is now: 139149312
2012-04-11T15:40:10Z [28222] INFO [PASSED] testErrorHandlingUnknownDocument

MMAP: total mmaped size is now: 141615104

MMAP: total mmaped size is now: 175169536

MMAP: total mmaped size is now: 208723968
2012-04-11T15:40:10Z [28222] INFO [PASSED] testErrorHandlingCrossCollection
2012-04-11T15:40:10Z [28222] INFO 3 tests passed
2012-04-11T15:40:10Z [28222] INFO 0 tests failed
2012-04-11T15:40:10Z [28222] INFO 392 milliseconds elapsed
2012-04-11T15:40:10Z [28222] INFO Running collectionDocumentSuiteReadDocument
2012-04-11T15:40:10Z [28222] INFO 5 tests found

MMAP: total mmaped size is now: 211189760

MMAP: total mmaped size is now: 244744192

MMAP: total mmaped size is now: 278298624
2012-04-11T15:40:10Z [28222] INFO [PASSED] testSaveDocument

MMAP: total mmaped size is now: 280764416

MMAP: total mmaped size is now: 314318848

MMAP: total mmaped size is now: 347873280
2012-04-11T15:40:10Z [28222] INFO [PASSED] testReadDocument

MMAP: total mmaped size is now: 350339072

MMAP: total mmaped size is now: 383893504

MMAP: total mmaped size is now: 417447936
2012-04-11T15:40:11Z [28222] INFO [PASSED] testReadDocumentConflict

MMAP: total mmaped size is now: 419913728

MMAP: total mmaped size is now: 453468160

MMAP: total mmaped size is now: 487022592
2012-04-11T15:40:11Z [28222] INFO [PASSED] testUpdateDocument

MMAP: total mmaped size is now: 489488384

MMAP: total mmaped size is now: 523042816

MMAP: total mmaped size is now: 556597248
2012-04-11T15:40:11Z [28222] INFO [PASSED] testDeleteDocument
2012-04-11T15:40:11Z [28222] INFO 5 tests passed
2012-04-11T15:40:11Z [28222] INFO 0 tests failed
2012-04-11T15:40:11Z [28222] INFO 911 milliseconds elapsed
2012-04-11T15:40:11Z [28222] INFO Running documentSuiteErrorHandling
2012-04-11T15:40:11Z [28222] INFO 2 tests found
2012-04-11T15:40:11Z [28222] INFO [PASSED] testErrorHandlingBadHandle

MMAP: total mmaped size is now: 559063040

MMAP: total mmaped size is now: 592617472

MMAP: total mmaped size is now: 626171904
2012-04-11T15:40:11Z [28222] INFO [PASSED] testErrorHandlingUnknownDocument
2012-04-11T15:40:11Z [28222] INFO 2 tests passed
2012-04-11T15:40:11Z [28222] INFO 0 tests failed
2012-04-11T15:40:11Z [28222] INFO 77 milliseconds elapsed
2012-04-11T15:40:11Z [28222] INFO Running documentSuiteReadDocument
2012-04-11T15:40:11Z [28222] INFO 4 tests found

MMAP: total mmaped size is now: 628637696

MMAP: total mmaped size is now: 662192128

MMAP: total mmaped size is now: 695746560
2012-04-11T15:40:11Z [28222] INFO [PASSED] testReadDocument

MMAP: total mmaped size is now: 698212352

MMAP: total mmaped size is now: 731766784

MMAP: total mmaped size is now: 765321216
2012-04-11T15:40:11Z [28222] INFO [PASSED] testReadDocumentConflict

MMAP: total mmaped size is now: 767787008

MMAP: total mmaped size is now: 801341440

MMAP: total mmaped size is now: 834895872
2012-04-11T15:40:12Z [28222] INFO [PASSED] testUpdateDocument

MMAP: total mmaped size is now: 837361664

MMAP: total mmaped size is now: 870916096

MMAP: total mmaped size is now: 904470528
2012-04-11T15:40:12Z [28222] INFO [PASSED] testDeleteDocument
2012-04-11T15:40:12Z [28222] INFO 4 tests passed
2012-04-11T15:40:12Z [28222] INFO 0 tests failed
2012-04-11T15:40:12Z [28222] INFO 697 milliseconds elapsed
2012-04-11T15:40:12Z [28222] INFO 14 total, 14 passed, 0 failed, 2077 ms
2012-04-11T15:40:12Z [28222] INFO Running collectionSuiteErrorHandling
2012-04-11T15:40:12Z [28222] INFO 6 tests found
2012-04-11T15:40:12Z [28222] INFO [PASSED] testErrorHandlingBadNameUnderscore
2012-04-11T15:40:12Z [28222] INFO [PASSED] testErrorHandlingBadNameEmpty
2012-04-11T15:40:12Z [28222] INFO [PASSED] testErrorHandlingBadNameNumber
2012-04-11T15:40:12Z [28222] INFO [PASSED] testErrorHandlingBadNameUnderscoreShortCut
2012-04-11T15:40:12Z [28222] INFO [PASSED] testErrorHandlingBadNameEmptyShortCut
2012-04-11T15:40:12Z [28222] INFO [PASSED] testErrorHandlingBadNameNumberShortCut
2012-04-11T15:40:12Z [28222] INFO 6 tests passed
2012-04-11T15:40:12Z [28222] INFO 0 tests failed
2012-04-11T15:40:12Z [28222] INFO 1 millisecond elapsed
2012-04-11T15:40:12Z [28222] INFO Running collectionSuite
2012-04-11T15:40:12Z [28222] INFO 18 tests found

MMAP: total mmaped size is now: 906936320

MMAP: total mmaped size is now: 940490752

MMAP: total mmaped size is now: 974045184
2012-04-11T15:40:12Z [28222] INFO [PASSED] testReadingByName

MMAP: total mmaped size is now: 976510976

MMAP: total mmaped size is now: 1010065408

MMAP: total mmaped size is now: 1043619840
2012-04-11T15:40:12Z [28222] INFO [PASSED] testReadingByIdentifier

MMAP: total mmaped size is now: 1046085632

MMAP: total mmaped size is now: 1079640064

MMAP: total mmaped size is now: 1113194496
2012-04-11T15:40:12Z [28222] INFO [PASSED] testReadingByNameShortCut

MMAP: total mmaped size is now: 1115660288

MMAP: total mmaped size is now: 1149214720

MMAP: total mmaped size is now: 1182769152
2012-04-11T15:40:12Z [28222] INFO [PASSED] testReadingAll

MMAP: total mmaped size is now: 1185234944

MMAP: total mmaped size is now: 1218789376

MMAP: total mmaped size is now: 1252343808
2012-04-11T15:40:12Z [28222] INFO [PASSED] testCreatingDefaults

MMAP: total mmaped size is now: 1254809600

MMAP: total mmaped size is now: 1255858176

MMAP: total mmaped size is now: 1256906752
2012-04-11T15:40:12Z [28222] INFO [PASSED] testCreatingProperties

MMAP: total mmaped size is now: 1259372544

MMAP: total mmaped size is now: 1292926976

MMAP: total mmaped size is now: 1326481408
2012-04-11T15:40:12Z [28222] INFO [PASSED] testDroppingNewBornDB

MMAP: total mmaped size is now: 1328947200

MMAP: total mmaped size is now: 1362501632

MMAP: total mmaped size is now: 1396056064
2012-04-11T15:40:12Z [28222] INFO [PASSED] testDroppingLoadedDB

MMAP: total mmaped size is now: 1398521856

MMAP: total mmaped size is now: 1432076288

MMAP: total mmaped size is now: 1465630720
2012-04-11T15:40:13Z [28222] INFO [PASSED] testDroppingUnloadedDB

MMAP: total mmaped size is now: 1468096512

MMAP: total mmaped size is now: 1501650944

MMAP: total mmaped size is now: 1535205376
2012-04-11T15:40:13Z [28222] INFO [PASSED] testTruncatingNewBornDB

MMAP: total mmaped size is now: 1537671168

MMAP: total mmaped size is now: 1571225600
2012-04-11T15:40:13Z [28222] ERROR cannot memory map file '/tmp/vocdir.28161/collection-32699786/journal-33748362.db': 'Cannot allocate memory'
2012-04-11T15:40:13Z [28222] ERROR cannot create new journal in '/tmp/vocdir.28161/collection-32699786/journal-33748362.db'
(same error repeats here...)

As can be seen above, the first few tests (shell-document.js and shell-collection.js) already amount for 1.5 GB of memory mapped file data. This seems to be the maximum that my computer supports.
1.5 GB of free RAM should be sufficient to run a few tests I think.

I think the problem is that the tests create new collections in the setUp routine. When creating a new collection, mmap is called for it. This is fine, however, munmap is not called when the collections are dropped when tests execute their tearDown routine.
That means the mmap'ed value will only increase, at least while the tests are running. It be helpful if munmap could be called when a collection is explicitly dropped (or at least shortly after) to free resources.

@ghost ghost assigned fceller Apr 11, 2012
@jsteemann
Copy link
Contributor Author

I repeated the tests and it seems munmap is now being called.
However, when running the unittests suite on my office box, up to 60 memory mappings are active at the same time.
This looks like too much because most tests only use one or two collections and the tests are executed sequentially. munmap'ing more frequently could save some memory.
Maybe this can be fixed by running the compaction more often (?), forced unloads of collections or by other means.

Below is the output of the test run with the mmap and munmap operations plus the number of active mappings at the time of each mmap/munmap call. Furthermore, it is logged when the compaction started and finished.

<< SHELL SERVER TESTS (BASICS) >>

./avocado "/tmp/vocdir.3904" --startup.directory ./js --startup.modules-path ./js/server/modules:./js/common/modules --action.system-directory ./js/actions/system --unit-tests ./js/common/tests/shell-document.js --unit-tests ./js/common/tests/shell-edge.js --unit-tests ./js/common/tests/shell-collection.js --unit-tests ./js/common/tests/shell-simple-query.js --unit-tests ./js/common/tests/shell-index.js --unit-tests ./js/common/tests/shell-index-geo.js --unit-tests ./js/common/tests/shell-cap-constraint.js || test "0" == "1"
2012-05-11T13:34:46Z [3959] INFO no user init file '/home/triagens03/steemann/.avocado/avocado.conf' found
2012-05-11T13:34:46Z [3959] INFO using JavaScript startup files at './js'
2012-05-11T13:34:46Z [3959] INFO using database action files at '/tmp/vocdir.3904/_ACTIONS'
2012-05-11T13:34:46Z [3959] INFO using system action files at './js/actions/system'
SYNCHRONISER START
SYNCHRONISER END
COMPACTOR START
COMPACTOR END
2012-05-11T13:34:46Z [3959] INFO using JavaScript modules path './js/server/modules:./js/common/modules'
AvocadoDB shell [V8 version 3.9.4, DB version 0.4.2]
2012-05-11T13:34:46Z [3959] INFO Running CollectionDocumentSuiteErrorHandling
2012-05-11T13:34:46Z [3959] INFO 7 tests found
MMAP CALLED 1
2012-05-11T13:34:46Z [3959] INFO [PASSED] testErrorHandlingBadHandle
MMAP CALLED 2
2012-05-11T13:34:47Z [3959] INFO [PASSED] testErrorHandlingBadHandleReplace
MMAP CALLED 3
SYNCHRONISER START
MMAP CALLED 4
MMAP CALLED 5
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:47Z [3959] INFO [PASSED] testErrorHandlingBadHandleDelete
MMAP CALLED 6
2012-05-11T13:34:47Z [3959] INFO [PASSED] testErrorHandlingUnknownDocument
MMAP CALLED 7
2012-05-11T13:34:48Z [3959] INFO [PASSED] testErrorHandlingCrossCollection
MMAP CALLED 8
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:48Z [3959] INFO [PASSED] testErrorHandlingCrossCollectionReplace
MMAP CALLED 9
2012-05-11T13:34:48Z [3959] INFO [PASSED] testErrorHandlingCrossCollectionDelete
2012-05-11T13:34:48Z [3959] INFO 7 tests passed
2012-05-11T13:34:48Z [3959] INFO 0 tests failed
2012-05-11T13:34:48Z [3959] INFO 2583 milliseconds elapsed
2012-05-11T13:34:48Z [3959] INFO Running CollectionDocumentSuite
2012-05-11T13:34:48Z [3959] INFO 6 tests found
MMAP CALLED 10
SYNCHRONISER START
MMAP CALLED 11
MMAP CALLED 12
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:49Z [3959] INFO [PASSED] testSaveDocument
MMAP CALLED 13
SYNCHRONISER START
MMAP CALLED 14
MMAP CALLED 15
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:50Z [3959] INFO [PASSED] testReadDocument
MMAP CALLED 16
COMPACTOR START
MUNMAP CALLED 15
MUNMAP CALLED 14
MUNMAP CALLED 13
MUNMAP CALLED 12
MUNMAP CALLED 11
MUNMAP CALLED 10
MUNMAP CALLED 9
MUNMAP CALLED 8
MUNMAP CALLED 7
MUNMAP CALLED 6
MUNMAP CALLED 5
MUNMAP CALLED 4
COMPACTOR END
SYNCHRONISER START
MMAP CALLED 5
MMAP CALLED 6
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:52Z [3959] INFO [PASSED] testReadDocumentConflict
MMAP CALLED 7
SYNCHRONISER START
MMAP CALLED 8
MMAP CALLED 9
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:53Z [3959] INFO [PASSED] testUpdateDocument
MMAP CALLED 10
SYNCHRONISER START
MMAP CALLED 11
MMAP CALLED 12
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:54Z [3959] INFO [PASSED] testDeleteDocument
MMAP CALLED 13
SYNCHRONISER START
MMAP CALLED 14
MMAP CALLED 15
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:55Z [3959] INFO [PASSED] testDeleteDeletedDocument
2012-05-11T13:34:55Z [3959] INFO 6 tests passed
2012-05-11T13:34:55Z [3959] INFO 0 tests failed
2012-05-11T13:34:55Z [3959] INFO 6662 milliseconds elapsed
2012-05-11T13:34:55Z [3959] INFO Running DatabaseDocumentSuiteErrorHandling
2012-05-11T13:34:55Z [3959] INFO 4 tests found
2012-05-11T13:34:55Z [3959] INFO [PASSED] testErrorHandlingBadHandle
2012-05-11T13:34:55Z [3959] INFO [PASSED] testErrorHandlingBadHandleReplace
2012-05-11T13:34:55Z [3959] INFO [PASSED] testErrorHandlingBadHandleDelete
MMAP CALLED 16
2012-05-11T13:34:55Z [3959] INFO [PASSED] testErrorHandlingUnknownDocument
2012-05-11T13:34:55Z [3959] INFO 4 tests passed
2012-05-11T13:34:55Z [3959] INFO 0 tests failed
2012-05-11T13:34:55Z [3959] INFO 378 milliseconds elapsed
2012-05-11T13:34:56Z [3959] INFO Running DatabaseDocumentSuite
2012-05-11T13:34:56Z [3959] INFO 5 tests found
MMAP CALLED 17
COMPACTOR START
MUNMAP CALLED 16
MUNMAP CALLED 15
MUNMAP CALLED 14
MUNMAP CALLED 13
MUNMAP CALLED 12
MUNMAP CALLED 11
MUNMAP CALLED 10
COMPACTOR END
SYNCHRONISER START
MMAP CALLED 11
MMAP CALLED 12
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:56Z [3959] INFO [PASSED] testReadDocument
MMAP CALLED 13
SYNCHRONISER START
MMAP CALLED 14
MMAP CALLED 15
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:57Z [3959] INFO [PASSED] testReadDocumentConflict
MMAP CALLED 16
SYNCHRONISER START
MMAP CALLED 17
MMAP CALLED 18
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:34:59Z [3959] INFO [PASSED] testUpdateDocument
MMAP CALLED 19
SYNCHRONISER START
MMAP CALLED 20
MMAP CALLED 21
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:00Z [3959] INFO [PASSED] testDeleteDocument
MMAP CALLED 22
SYNCHRONISER START
MMAP CALLED 23
MMAP CALLED 24
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:01Z [3959] INFO [PASSED] testDeleteDeletedDocument
2012-05-11T13:35:01Z [3959] INFO 5 tests passed
2012-05-11T13:35:01Z [3959] INFO 0 tests failed
2012-05-11T13:35:01Z [3959] INFO 5296 milliseconds elapsed
2012-05-11T13:35:01Z [3959] INFO 22 total, 22 passed, 0 failed, 14919 ms
2012-05-11T13:35:01Z [3959] INFO Running CollectionEdgeSuiteErrorHandling
2012-05-11T13:35:01Z [3959] INFO 1 test found
MMAP CALLED 25
COMPACTOR START
MUNMAP CALLED 24
MUNMAP CALLED 23
MUNMAP CALLED 22
MUNMAP CALLED 21
MUNMAP CALLED 20
MUNMAP CALLED 19
MMAP CALLED 20
COMPACTOR END
SYNCHRONISER START
MMAP CALLED 21
MMAP CALLED 22
MMAP CALLED 23
MMAP CALLED 24
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:02Z [3959] INFO [PASSED] testErrorHandlingBadHandle
2012-05-11T13:35:02Z [3959] INFO 1 test passed
2012-05-11T13:35:02Z [3959] INFO 0 tests failed
2012-05-11T13:35:02Z [3959] INFO 1321 milliseconds elapsed
2012-05-11T13:35:02Z [3959] INFO Running CollectionEdgeSuite
2012-05-11T13:35:02Z [3959] INFO 8 tests found
MMAP CALLED 25
MMAP CALLED 26
SYNCHRONISER START
MMAP CALLED 27
MMAP CALLED 28
MMAP CALLED 29
MMAP CALLED 30
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:04Z [3959] INFO [PASSED] testSaveEdge
MMAP CALLED 31
MMAP CALLED 32
SYNCHRONISER START
MMAP CALLED 33
MMAP CALLED 34
MMAP CALLED 35
MMAP CALLED 36
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:05Z [3959] INFO [PASSED] testReadEdge
MMAP CALLED 37
MMAP CALLED 38
SYNCHRONISER START
MMAP CALLED 39
MMAP CALLED 40
MMAP CALLED 41
MMAP CALLED 42
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:06Z [3959] INFO [PASSED] testReadEdges
MMAP CALLED 43
COMPACTOR START
MUNMAP CALLED 42
MUNMAP CALLED 41
MUNMAP CALLED 40
MMAP CALLED 41
MUNMAP CALLED 40
MUNMAP CALLED 39
MUNMAP CALLED 38
MUNMAP CALLED 37
MUNMAP CALLED 36
MUNMAP CALLED 35
MUNMAP CALLED 34
MUNMAP CALLED 33
MUNMAP CALLED 32
MUNMAP CALLED 31
MUNMAP CALLED 30
MUNMAP CALLED 29
MUNMAP CALLED 28
MUNMAP CALLED 27
MUNMAP CALLED 26
MUNMAP CALLED 25
MUNMAP CALLED 24
MUNMAP CALLED 23
MUNMAP CALLED 22
MUNMAP CALLED 21
MUNMAP CALLED 20
MUNMAP CALLED 19
MUNMAP CALLED 18
MUNMAP CALLED 17
MUNMAP CALLED 16
MUNMAP CALLED 15
MUNMAP CALLED 14
MUNMAP CALLED 13
MUNMAP CALLED 12
MUNMAP CALLED 11
MUNMAP CALLED 10
MUNMAP CALLED 9
MUNMAP CALLED 8
COMPACTOR END
SYNCHRONISER START
MMAP CALLED 9
MMAP CALLED 10
MMAP CALLED 11
MMAP CALLED 12
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:07Z [3959] INFO [PASSED] testReadInEdges
MMAP CALLED 13
MMAP CALLED 14
SYNCHRONISER START
MMAP CALLED 15
MMAP CALLED 16
MMAP CALLED 17
MMAP CALLED 18
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:09Z [3959] INFO [PASSED] testReadOutEdges
MMAP CALLED 19
MMAP CALLED 20
SYNCHRONISER START
MMAP CALLED 21
MMAP CALLED 22
MMAP CALLED 23
MMAP CALLED 24
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:10Z [3959] INFO [PASSED] testReadEdgesList
MMAP CALLED 25
MMAP CALLED 26
SYNCHRONISER START
MMAP CALLED 27
MMAP CALLED 28
MMAP CALLED 29
MMAP CALLED 30
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:12Z [3959] INFO [PASSED] testReadInEdgesList
MMAP CALLED 31
COMPACTOR START
MUNMAP CALLED 30
MUNMAP CALLED 29
MUNMAP CALLED 28
MMAP CALLED 29
SYNCHRONISER START
MMAP CALLED 30
MUNMAP CALLED 29
MUNMAP CALLED 28
MUNMAP CALLED 27
MUNMAP CALLED 26
MUNMAP CALLED 25
MUNMAP CALLED 24
MUNMAP CALLED 23
MUNMAP CALLED 22
MUNMAP CALLED 21
COMPACTOR END
MMAP CALLED 22
MMAP CALLED 23
MMAP CALLED 24
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:13Z [3959] INFO [PASSED] testReadOutEdgesList
2012-05-11T13:35:13Z [3959] INFO 8 tests passed
2012-05-11T13:35:13Z [3959] INFO 0 tests failed
2012-05-11T13:35:13Z [3959] INFO 10545 milliseconds elapsed
2012-05-11T13:35:13Z [3959] INFO 9 total, 9 passed, 0 failed, 11866 ms
2012-05-11T13:35:13Z [3959] INFO Running CollectionSuiteErrorHandling
2012-05-11T13:35:13Z [3959] INFO 6 tests found
2012-05-11T13:35:13Z [3959] INFO [PASSED] testErrorHandlingBadNameUnderscore
2012-05-11T13:35:13Z [3959] INFO [PASSED] testErrorHandlingBadNameEmpty
2012-05-11T13:35:13Z [3959] INFO [PASSED] testErrorHandlingBadNameNumber
2012-05-11T13:35:13Z [3959] INFO [PASSED] testErrorHandlingBadNameUnderscoreShortCut
2012-05-11T13:35:13Z [3959] INFO [PASSED] testErrorHandlingBadNameEmptyShortCut
2012-05-11T13:35:13Z [3959] INFO [PASSED] testErrorHandlingBadNameNumberShortCut
2012-05-11T13:35:13Z [3959] INFO 6 tests passed
2012-05-11T13:35:13Z [3959] INFO 0 tests failed
2012-05-11T13:35:13Z [3959] INFO 1 millisecond elapsed
2012-05-11T13:35:13Z [3959] INFO Running CollectionSuite
2012-05-11T13:35:13Z [3959] INFO 15 tests found
MMAP CALLED 25
2012-05-11T13:35:13Z [3959] INFO [PASSED] testReadingByName
MMAP CALLED 26
2012-05-11T13:35:13Z [3959] INFO [PASSED] testReadingByIdentifier
MMAP CALLED 27
SYNCHRONISER START
MMAP CALLED 28
MMAP CALLED 29
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:14Z [3959] INFO [PASSED] testReadingByNameShortCut
MMAP CALLED 30
2012-05-11T13:35:14Z [3959] INFO [PASSED] testReadingAll
MMAP CALLED 31
2012-05-11T13:35:15Z [3959] INFO [PASSED] testCreatingDefaults
MMAP CALLED 32
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:15Z [3959] INFO [PASSED] testCreatingProperties
MMAP CALLED 33
2012-05-11T13:35:15Z [3959] INFO [PASSED] testDroppingNewBorn
MMAP CALLED 34
SYNCHRONISER START
MMAP CALLED 35
MMAP CALLED 36
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:16Z [3959] INFO [PASSED] testDroppingLoaded
MMAP CALLED 37
SYNCHRONISER START
MMAP CALLED 38
MMAP CALLED 39
COMPACTOR START
MUNMAP CALLED 38
MUNMAP CALLED 37
MUNMAP CALLED 36
MUNMAP CALLED 35
MUNMAP CALLED 34
MUNMAP CALLED 33
MUNMAP CALLED 32
MUNMAP CALLED 31
MUNMAP CALLED 30
MUNMAP CALLED 29
MUNMAP CALLED 28
MUNMAP CALLED 27
MUNMAP CALLED 26
MUNMAP CALLED 25
MUNMAP CALLED 24
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
COMPACTOR END
2012-05-11T13:35:17Z [3959] INFO [PASSED] testDroppingUnloaded
MMAP CALLED 25
2012-05-11T13:35:18Z [3959] INFO [PASSED] testTruncatingNewBorn
MMAP CALLED 26
SYNCHRONISER START
MMAP CALLED 27
MMAP CALLED 28
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:19Z [3959] INFO [PASSED] testTruncatingLoaded
MMAP CALLED 29
SYNCHRONISER START
MMAP CALLED 30
MMAP CALLED 31
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:20Z [3959] INFO [PASSED] testTruncatingUnloaded
MMAP CALLED 32
SYNCHRONISER START
MMAP CALLED 33
MMAP CALLED 34
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:21Z [3959] INFO [PASSED] testFigures
MMAP CALLED 35
SYNCHRONISER START
MMAP CALLED 36
MMAP CALLED 37
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:22Z [3959] INFO [PASSED] testRenameLoaded
MMAP CALLED 38
COMPACTOR START
MUNMAP CALLED 37
MUNMAP CALLED 36
MUNMAP CALLED 35
MUNMAP CALLED 34
MUNMAP CALLED 33
MUNMAP CALLED 32
MUNMAP CALLED 31
MUNMAP CALLED 30
MUNMAP CALLED 29
MUNMAP CALLED 28
SYNCHRONISER START
MMAP CALLED 29
MMAP CALLED 30
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
COMPACTOR END
2012-05-11T13:35:23Z [3959] INFO [PASSED] testRenameUnloaded
2012-05-11T13:35:23Z [3959] INFO 15 tests passed
2012-05-11T13:35:23Z [3959] INFO 0 tests failed
2012-05-11T13:35:23Z [3959] INFO 10297 milliseconds elapsed
2012-05-11T13:35:23Z [3959] INFO Running CollectionDbSuite
2012-05-11T13:35:23Z [3959] INFO 6 tests found
MMAP CALLED 31
2012-05-11T13:35:23Z [3959] INFO [PASSED] testDroppingNewBornDB
MMAP CALLED 32
SYNCHRONISER START
MMAP CALLED 33
MMAP CALLED 34
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:24Z [3959] INFO [PASSED] testDroppingLoadedDB
MMAP CALLED 35
SYNCHRONISER START
MMAP CALLED 36
MMAP CALLED 37
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:25Z [3959] INFO [PASSED] testDroppingUnloadedDB
MMAP CALLED 38
2012-05-11T13:35:26Z [3959] INFO [PASSED] testTruncatingNewBornDB
MMAP CALLED 39
SYNCHRONISER START
MMAP CALLED 40
MMAP CALLED 41
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:26Z [3959] INFO [PASSED] testTruncatingLoadedDB
MMAP CALLED 42
SYNCHRONISER START
MMAP CALLED 43
MMAP CALLED 44
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:28Z [3959] INFO [PASSED] testTruncatingUnloadedDB
2012-05-11T13:35:28Z [3959] INFO 6 tests passed
2012-05-11T13:35:28Z [3959] INFO 0 tests failed
2012-05-11T13:35:28Z [3959] INFO 4453 milliseconds elapsed
2012-05-11T13:35:28Z [3959] INFO 27 total, 27 passed, 0 failed, 14751 ms
2012-05-11T13:35:28Z [3959] INFO Running SimpleQueryArraySkipLimitSuite
2012-05-11T13:35:28Z [3959] INFO 3 tests found
2012-05-11T13:35:28Z [3959] INFO [PASSED] testSkip
2012-05-11T13:35:28Z [3959] INFO [PASSED] testLimit
2012-05-11T13:35:28Z [3959] INFO [PASSED] testSkipLimit
2012-05-11T13:35:28Z [3959] INFO 3 tests passed
2012-05-11T13:35:28Z [3959] INFO 0 tests failed
2012-05-11T13:35:28Z [3959] INFO 6 milliseconds elapsed
2012-05-11T13:35:28Z [3959] INFO Running SimpleQueryAllSkipLimitSuite
2012-05-11T13:35:28Z [3959] INFO 3 tests found
MMAP CALLED 45
COMPACTOR START
MUNMAP CALLED 44
MUNMAP CALLED 43
MUNMAP CALLED 42
MUNMAP CALLED 41
MUNMAP CALLED 40
MUNMAP CALLED 39
MUNMAP CALLED 38
MUNMAP CALLED 37
MUNMAP CALLED 36
MUNMAP CALLED 35
MUNMAP CALLED 34
SYNCHRONISER START
MMAP CALLED 35
MMAP CALLED 36
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
COMPACTOR END
2012-05-11T13:35:29Z [3959] INFO [PASSED] testAllSkip
MMAP CALLED 37
SYNCHRONISER START
MMAP CALLED 38
MMAP CALLED 39
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:30Z [3959] INFO [PASSED] testAllLimit
MMAP CALLED 40
SYNCHRONISER START
MMAP CALLED 41
MMAP CALLED 42
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:31Z [3959] INFO [PASSED] testAllSkipLimit
2012-05-11T13:35:31Z [3959] INFO 3 tests passed
2012-05-11T13:35:31Z [3959] INFO 0 tests failed
2012-05-11T13:35:31Z [3959] INFO 3358 milliseconds elapsed
2012-05-11T13:35:31Z [3959] INFO Running SimpleQueryByExampleSuite
2012-05-11T13:35:31Z [3959] INFO 2 tests found
MMAP CALLED 43
SYNCHRONISER START
MMAP CALLED 44
MMAP CALLED 45
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:32Z [3959] INFO [PASSED] testByExampleObject
MMAP CALLED 46
SYNCHRONISER START
MMAP CALLED 47
MMAP CALLED 48
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:33Z [3959] INFO [PASSED] testByExampleList
2012-05-11T13:35:33Z [3959] INFO 2 tests passed
2012-05-11T13:35:33Z [3959] INFO 0 tests failed
2012-05-11T13:35:33Z [3959] INFO 2445 milliseconds elapsed
2012-05-11T13:35:33Z [3959] INFO 8 total, 8 passed, 0 failed, 5809 ms
2012-05-11T13:35:33Z [3959] INFO Running indexSuite
2012-05-11T13:35:33Z [3959] INFO 3 tests found
MMAP CALLED 49
COMPACTOR START
COMPACTOR END
2012-05-11T13:35:34Z [3959] INFO [PASSED] testGetIndexes
MMAP CALLED 50
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:34Z [3959] INFO [PASSED] testIndex
MMAP CALLED 51
2012-05-11T13:35:35Z [3959] INFO [PASSED] testDropIndex
2012-05-11T13:35:35Z [3959] INFO 3 tests passed
2012-05-11T13:35:35Z [3959] INFO 0 tests failed
2012-05-11T13:35:35Z [3959] INFO 1192 milliseconds elapsed
2012-05-11T13:35:35Z [3959] INFO 3 total, 3 passed, 0 failed, 1192 ms
2012-05-11T13:35:35Z [3959] INFO Running GeoIndexCreationSuite
2012-05-11T13:35:35Z [3959] INFO 9 tests found
MMAP CALLED 52
2012-05-11T13:35:35Z [3959] INFO [PASSED] testCreationIndexLocationList
MMAP CALLED 53
SYNCHRONISER START
MMAP CALLED 54
MMAP CALLED 55
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:36Z [3959] INFO [PASSED] testCreationIndexLocationListGeo
MMAP CALLED 56
2012-05-11T13:35:36Z [3959] INFO [PASSED] testCreationIndexLocationAttributes
MMAP CALLED 57
SYNCHRONISER START
MMAP CALLED 58
MMAP CALLED 59
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:37Z [3959] INFO [PASSED] testCreationConstraintLocationList
MMAP CALLED 60
2012-05-11T13:35:38Z [3959] INFO [PASSED] testCreationConstraintLocationListGeo
MMAP CALLED 61
2012-05-11T13:35:38Z [3959] INFO [PASSED] testCreationConstraintLocationAttributes
MMAP CALLED 62
SYNCHRONISER START
MMAP CALLED 63
MMAP CALLED 64
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:39Z [3959] INFO [PASSED] testCreationConstraintNullLocationList
MMAP CALLED 65
COMPACTOR START
MUNMAP CALLED 64
MUNMAP CALLED 63
MUNMAP CALLED 62
MUNMAP CALLED 61
MUNMAP CALLED 60
MUNMAP CALLED 59
MUNMAP CALLED 58
MUNMAP CALLED 57
MUNMAP CALLED 56
MUNMAP CALLED 55
MUNMAP CALLED 54
MUNMAP CALLED 53
MUNMAP CALLED 52
MUNMAP CALLED 51
MUNMAP CALLED 50
MUNMAP CALLED 49
MUNMAP CALLED 48
MUNMAP CALLED 47
MUNMAP CALLED 46
MUNMAP CALLED 45
MUNMAP CALLED 44
MUNMAP CALLED 43
MUNMAP CALLED 42
MUNMAP CALLED 41
MUNMAP CALLED 40
MUNMAP CALLED 39
MUNMAP CALLED 38
MUNMAP CALLED 37
MUNMAP CALLED 36
MUNMAP CALLED 35
MUNMAP CALLED 34
MUNMAP CALLED 33
MUNMAP CALLED 32
MUNMAP CALLED 31
MUNMAP CALLED 30
MUNMAP CALLED 29
MUNMAP CALLED 28
MUNMAP CALLED 27
MUNMAP CALLED 26
MUNMAP CALLED 25
MUNMAP CALLED 24
MUNMAP CALLED 23
MUNMAP CALLED 22
MUNMAP CALLED 21
MUNMAP CALLED 20
MUNMAP CALLED 19
MUNMAP CALLED 18
MUNMAP CALLED 17
MUNMAP CALLED 16
MUNMAP CALLED 15
MUNMAP CALLED 14
MUNMAP CALLED 13
MUNMAP CALLED 12
MUNMAP CALLED 11
MUNMAP CALLED 10
MUNMAP CALLED 9
MUNMAP CALLED 8
MUNMAP CALLED 7
MUNMAP CALLED 6
MUNMAP CALLED 5
MUNMAP CALLED 4
MUNMAP CALLED 3
MUNMAP CALLED 2
MUNMAP CALLED 1
COMPACTOR END
2012-05-11T13:35:39Z [3959] INFO [PASSED] testCreationConstraintNullLocationListGeo
MMAP CALLED 2
SYNCHRONISER START
MMAP CALLED 3
MMAP CALLED 4
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:40Z [3959] INFO [PASSED] testCreationConstraintNullLocationAttributes
2012-05-11T13:35:40Z [3959] INFO 9 tests passed
2012-05-11T13:35:40Z [3959] INFO 0 tests failed
2012-05-11T13:35:40Z [3959] INFO 5006 milliseconds elapsed
2012-05-11T13:35:40Z [3959] INFO Running GeoIndexErrorHandlingSuite
2012-05-11T13:35:40Z [3959] INFO 4 tests found
MMAP CALLED 5
SYNCHRONISER START
MMAP CALLED 6
MMAP CALLED 7
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:41Z [3959] INFO [PASSED] testErrorHandlingIndexList
MMAP CALLED 8
SYNCHRONISER START
MMAP CALLED 9
MMAP CALLED 10
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:42Z [3959] INFO [PASSED] testErrorHandlingConstraintList
MMAP CALLED 11
SYNCHRONISER START
MMAP CALLED 12
MMAP CALLED 13
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:43Z [3959] INFO [PASSED] testErrorHandlingConstraintNullList
MMAP CALLED 14
COMPACTOR START
MUNMAP CALLED 13
MUNMAP CALLED 12
MUNMAP CALLED 11
MUNMAP CALLED 10
SYNCHRONISER START
MMAP CALLED 11
MMAP CALLED 12
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
COMPACTOR END
2012-05-11T13:35:44Z [3959] INFO [PASSED] testErrorHandlingConstraintAttribute
2012-05-11T13:35:44Z [3959] INFO 4 tests passed
2012-05-11T13:35:44Z [3959] INFO 0 tests failed
2012-05-11T13:35:44Z [3959] INFO 4536 milliseconds elapsed
2012-05-11T13:35:44Z [3959] INFO Running GeoIndexSimpleQueriesSuite
2012-05-11T13:35:44Z [3959] INFO 11 tests found
MMAP CALLED 13
SYNCHRONISER START
MMAP CALLED 14
MMAP CALLED 15
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:45Z [3959] INFO [PASSED] testNearLocationList
MMAP CALLED 16
SYNCHRONISER START
MMAP CALLED 17
MMAP CALLED 18
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:47Z [3959] INFO [PASSED] testNearLocationListGeo
MMAP CALLED 19
SYNCHRONISER START
MMAP CALLED 20
MMAP CALLED 21
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:48Z [3959] INFO [PASSED] testNearLocationAttributes
MMAP CALLED 22
SYNCHRONISER START
MMAP CALLED 23
MMAP CALLED 24
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:49Z [3959] INFO [PASSED] testNearLocationDistance
MMAP CALLED 25
COMPACTOR START
COMPACTOR END
SYNCHRONISER START
MMAP CALLED 26
MMAP CALLED 27
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:50Z [3959] INFO [PASSED] testNearLocationNamedDistance
MMAP CALLED 28
SYNCHRONISER START
MMAP CALLED 29
MMAP CALLED 30
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:51Z [3959] INFO [PASSED] testWithinLocationList
MMAP CALLED 31
SYNCHRONISER START
MMAP CALLED 32
MMAP CALLED 33
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:52Z [3959] INFO [PASSED] testWithinLocationListGeo
MMAP CALLED 34
SYNCHRONISER START
MMAP CALLED 35
MMAP CALLED 36
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:54Z [3959] INFO [PASSED] testWithinLocationAttributes
MMAP CALLED 37
COMPACTOR START
SYNCHRONISER START
MMAP CALLED 38
MMAP CALLED 39
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
COMPACTOR END
2012-05-11T13:35:55Z [3959] INFO [PASSED] testWithinLocationDistance
MMAP CALLED 40
SYNCHRONISER START
MMAP CALLED 41
MMAP CALLED 42
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:56Z [3959] INFO [PASSED] testWithinLocationNamedDistance
MMAP CALLED 43
SYNCHRONISER START
MMAP CALLED 44
MMAP CALLED 45
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:57Z [3959] INFO [PASSED] testSelectGeoIndex
2012-05-11T13:35:57Z [3959] INFO 11 tests passed
2012-05-11T13:35:57Z [3959] INFO 0 tests failed
2012-05-11T13:35:57Z [3959] INFO 12613 milliseconds elapsed
2012-05-11T13:35:57Z [3959] INFO 24 total, 24 passed, 0 failed, 22155 ms
2012-05-11T13:35:57Z [3959] INFO Running CapConstraintSuite
2012-05-11T13:35:57Z [3959] INFO 3 tests found
MMAP CALLED 46
2012-05-11T13:35:57Z [3959] INFO [PASSED] testCreationCap
MMAP CALLED 47
2012-05-11T13:35:58Z [3959] INFO [PASSED] testCreationTwoCap
MMAP CALLED 48
SYNCHRONISER START
MMAP CALLED 49
MMAP CALLED 50
SYNCHRONISER END
SYNCHRONISER START
SYNCHRONISER END
2012-05-11T13:35:58Z [3959] INFO [PASSED] testNumberDocuments
2012-05-11T13:35:58Z [3959] INFO 3 tests passed
2012-05-11T13:35:58Z [3959] INFO 0 tests failed
2012-05-11T13:35:58Z [3959] INFO 1297 milliseconds elapsed
2012-05-11T13:35:58Z [3959] INFO 3 total, 3 passed, 0 failed, 1297 ms
SYNCHRONISER START
SYNCHRONISER END
COMPACTOR START
MUNMAP CALLED 49
MUNMAP CALLED 48
COMPACTOR END
2012-05-11T13:36:00Z [3959] INFO AvocadoDB has been shut down

@fceller fceller closed this as completed Jul 10, 2012
@fceller
Copy link
Contributor
8000
fceller commented Jul 10, 2012

Calling MUNMAP as soon as possible.

@jsteemann
Copy link
Contributor Author

Right, munmap is called when the collection is unloaded.
But collections are unloaded asynchronously so at any point of time it is likely that there are more collections open (and thus allocate memory) than would be absolutely necessary.
As can be seen in the output above, there were more than 60 mmapped files at some points during the test execution, even though only one or two were actually needed at these points. Deferred unloading of collections is "too slow" in these cases.

@fceller fceller reopened this Jul 10, 2012
@jsteemann
Copy link
Contributor Author

this has been fixed as a side-effect of issue #150 and issue #188.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants
0