Ticket #314 (closed defect: fixed)

Opened 21 months ago

Last modified 21 months ago

Memory mapping causes OutOfMemoryError if -Xmx is set too high

Reported by: masc01 Owned by: masc01
Priority: blocker Milestone: 4.1.1
Component: server_core Keywords:
Cc:

Description

The memory map mechanism for accessing unit selection files can cause problems when -Xmx1g or higher is set.

I observed this on a windows Vista machine with 4gb RAM and java 1.6.0_21.

This may be related to 32-bit java rather than windows as such: the physical memory and the virtual memory are in competition for the scarce resource "address space" on a 32-bit architecture.

A workaround is to lower the amount of memory reserved for the java heap, but for stability I think we should allow our code to fall back to the slower RandomAccessFile-based code if the memory map code fails.

Change History

comment:1 Changed 21 months ago by masc01

I have not been able to reproduce this problem on the Mac, even with "java -d32" which calls the 32 bit version of java. So for the moment the problem seems to be windows-specific.

comment:2 Changed 21 months ago by masc01

  • Owner changed from schroed to masc01
  • Priority changed from major to blocker
  • Status changed from new to assigned

This is preventing people from running MARY unit selection voices in SEMAINE on windows, changing priority to "blocker".

comment:3 Changed 21 months ago by masc01

  • Milestone changed from 4.2 to 4.1.1

comment:4 Changed 21 months ago by masc01

should be fixed by the fallback method implemented in r2658 and r2659 -- needs some more testing though, especially on windows.

comment:5 Changed 21 months ago by masc01

  • Status changed from assigned to closed
  • Resolution set to fixed

The fallback method seems to work OK. All unit tests run ok with both memory-mapped and piecewise byte buffers. Test run with *all* voices on windows with -Xmx1g runs OK.

Note: See TracTickets for help on using tickets.