Java SE 7 bug får Apache-projekter til at crashe

Den nye udgave af Java-platformen Standard Edition 7 - Java SE 7 - indeholder hotspot kompiler-optimeringer, der fejlkompilerer nogle løkker, hvilket kan få Java Virtuelle Maskiner til at crashe.

Apache Lucene-projektet rapporterer om, at den nye udgave af Java-platformen Standard Edition 7 - Java SE 7 - indeholder hotspot kompiler-optimeringer, der fejlkompilerer nogle løkker. Det kan bevirke, at Java Virtuelle Maskiner crasher og kan endda resultere i ukorrekte udregninger, der kan føre til bugs i visse applikationer.

Det skriver flere medier og blogs, blandt andet magasinet Applikation Development Trends samt Software Development Times.

Apache Lucene er et højtydende tekst-søgemaskine bibliotek, der er skrevet udelukkende i Java, og som udvikles af gruppen under samme navn.

Fejlen berører alle versioner af Apache Lucene og også Apache Solr, som er en open-source enterprise search-platform fra Lucene, som også er skrevet i Java. Solr kører som en selvstændig søgeserver inde i en servlet-container som for eksempel Tomcat.

Både Lucene og Solr advarer om fejlen i Java SE 7 på deres hjemmeside:

»Advarsel: Indekskorruption og crashes i Apache Lucene-kernen / Apache Solr med Java 7,« står der, og meddelelsen fortsætter:

»Disse problemer blev detekteret kun fem dage før den officielle Java 7-udgivelse, (…) så Oracle har ikke haft tid til at rette disse fejl, hvilket påvirker mange flere applikationer.«

Oracle har yderligere meldt ud, at de ikke vil fikse de opdagede bugs i optimerings-loops før anden opdatering af Java SE 7, hvilket frusterer Lucene-folkene:

»Det betyder, at du ikke kan bruge Apache Lucene/Solr med Java 7-udgivelser før Update 2. (…) Hvis du gør, så lad venligst være med at åbne fejl-rapporter, det er ikke comitternes skyld! I det mindste bør man deaktivere løkkeoptimeringer ved hjælp af -XX:-UseLoopPredicate JVM (Java Virtuelle Maskiner, red.) optionen, for at undgår indekskorruptioner,« skriver gruppen og fortsætter:

»Vi anbefaler på det kraftigste, at man ikke bruger nogen hotspot optimerings-switches i nogen Java versioner uden at udføre omfattende tests!« skriver Lucene-gruppen.

Oracle annoncerede i sidste uge, at Java SE 7 nu er tilgængelig, og det er den første udgivelse af kerne Java-platformen under Oracles ledelse og den første nye version af Java, som udgives i 5 år.

Læs mere om fejlen på Applikation Development Trends

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (6)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Kasper Sørensen

Jeg er enig i at det er slemt at have en bug som denne, meeen nyheds- og blog-medierne er altså også lidt voldsomme i den måde de behandler den på.

I starten lød det jo nærmest som om at ethvert loop kunne crashe.

Ud fra denne artikel...

http://www.infoq.com/news/2011/08/java7-hotspot

... kan man læse lidt mere nuanceret, at fejlen kun opstår, hvis:

Der køres i -server mode.
Der itereres mere en 10.000 gange i løkken.

Der nævnes også, at Oracle nu, pga. presset fra medierne, har opgraderet bug'ens prioritet så den bliver fixet i første update til Java 7.

  • 4
  • 0
Søren Grønning

Den problematik, jeg tror du henviser til her, er den omkring Oracles udskiftning af Sun Microsystems som 'vendor' ifht. Java, hvilet gjorde at Java applikationer som benyttede dette tag til at skelne forskellige JDK/JVM implementationer fra hinanden.

Det er jo lige så meget programmørernes vane, der ikke længere holdt vand da der løb nyt vand i åen!

  • 0
  • 0
Log ind eller Opret konto for at kommentere