United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6590257 ssv.dll base address may conflict with other JRE DLLs
6590257 : ssv.dll base address may conflict with other JRE DLLs

Details
Type:
Bug
Submit Date:
2007-08-07
Status:
Closed
Updated Date:
2010-09-17
Project Name:
JDK
Resolved Date:
2008-06-19
Component:
deploy
OS:
windows
Sub-Component:
deployment_toolkit
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
6u2
Fixed Versions:
6u10

Related Reports
Backport:
Relates:
Relates:

Sub Tasks

Description
The Deploy workspace build has a "rebase-dlls" target that rebases everything in $outputdir/bin/*.dll, including ssv.dll.  Now the Install workspace also has a "rebase" target.  The Install workspace appears to rebase everything in j2re-image/*.dll, *except* ssv.dll.  This can be seen in the build log file.  Based on this, it is possible (with some bad luck) to get another dll conflicting with ssv.dll.

It appears this is what happened in 1.6.0_02, with jvm.dll and ssv.dll:

C:\Program Files\Java\jre1.6.0_02\bin> dumpbin /headers ssv.dll | grep 'image base'
        6D7C0000 image base (6D7C0000 to 6D838FFF)

C:\Program Files\Java\jre1.6.0_02\bin> dumpbin /headers client\jvm.dll | grep 'image base'
        6D7C0000 image base (6D7C0000 to 6DA08FFF)

So in 6u2, jvm.dll will get relocated if it's loaded in a browser process where ssv.dll is already present.  Loading up a browser process under windbg and using the "!imgreloc" command confirms this.  Image relocation can potentially affect startup time and to a lesser extent, maximum size of the Java heap.

We should probably do the rebase in one place only.

                                    

Comments
EVALUATION

A fix is likely in a makefile to add ssv.dll to the rebase commandline.
                                     
2007-10-09



Hardware and Software, Engineered to Work Together