From: Helge S. <Hel...@gm...> - 2005-01-11 22:31:23
|
Hello SHORE'ler, an OpenSHORE 2.0.0 Alpha 2 server running on Linux 2.6.x reports a "no more memory" error while importing several long documents. This error is caused by changes in the kernel memory address space allocation strategy of the "mmap" system call. Linux 2.6.x kernels allocate by default address space for file mappings from high to low addresses instead from a fixed address behind the program code to high addresses (as all 2.x kernels before). Because of this, existing mappings can not be extended any more to build a larger continuous address spaces. So OpenSHORE 2.0.0 Alpha 2 reports an out of memory error first time when trying to extend his database file. As a workaround you can switch back Linux 2.6.x to his old behaviour by the command (as root): sysctl -w vm.legacy_va_layout=1 After calling this command an OpenSHORE should work as on older kernels. The command changes also the "mmap" start address, so that old database files can not be read any more and should be deleted. Unfortunately these options is global and can not be adjusted per process, so that all (new) started programs are switched backed to the old virtual address space layout. You can set this option at system start up by adding the line vm.legacy_va_layout=1 to the file /etc/sysctl.conf. If your Linux system has no sysctl program/package installed, you can also add the simple command echo 1 > /proc/sys/vm/legacy_va_layout to your start up scripts. The next OpenSHORE version (Alpha 3 or Beta 1) will fix this problem by choosing a "mmap" start address by hand. If you have time, you can extend source file src/misc/os/osUnix/FileMapperUnix.cpp by your self and send me your suggestions for choosing a starting address. I filed a bug report in the OpenSHORE SourceForge trackers under http://sourceforge.net/tracker/index.php?func=detail&aid=1100480&group_id=65882&atid=512595 I will close this report, if the problem is solved. Best regards, Helge -- Helge Schulz http://www.openshore.org |