[ 
https://issues.apache.org/jira/browse/ARTEMIS-618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16426080#comment-16426080
 ] 

Rostyslav Smirnov commented on ARTEMIS-618:
-------------------------------------------

This happens on any machine with 4 KB block hard drives. Simply creating a 
broker and starting it up will result in the above exception. The root cause 
appears to be alignment of the buffers to hard-coded 512 bytes inĀ 
LibaioFile.java and org_apache_activemq_artemis_jlibaio_LibaioContext.c

> Fails to initialize journal if hard drive block size is over 512 bytes
> ----------------------------------------------------------------------
>
>                 Key: ARTEMIS-618
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-618
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 1.3.0
>         Environment: CentOS 7 on hard drive with 4 KB blocks
>            Reporter: Rostyslav Smirnov
>            Priority: Major
>
> AIO journal fails to initialize with the following error:
> AMQ224000: Failure in initialisation: java.io.IOException: Cannot initialize 
> file
>       at org.apache.activemq.artemis.jlibaio.LibaioContext.fill(Native 
> Method) [artemis-native-1.3.0.jar:]
>       at 
> org.apache.activemq.artemis.jlibaio.LibaioFile.fill(LibaioFile.java:122) 
> [artemis-native-1.3.0.jar:]
>       at 
> org.apache.activemq.artemis.core.io.aio.AIOSequentialFile.fill(AIOSequentialFile.java:126)
>  [artemis-journal-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.journal.impl.JournalFilesRepository.createFile0(JournalFilesRepository.java:587)
>  [artemis-journal-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.journal.impl.JournalFilesRepository.createFile(JournalFilesRepository.java:537)
>  [artemis-journal-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.journal.impl.JournalFilesRepository.ensureMinFiles(JournalFilesRepository.java:201)
>  [artemis-journal-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.journal.impl.JournalImpl.setUpCurrentFile(JournalImpl.java:2709)
>  [artemis-journal-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.journal.impl.JournalImpl.load(JournalImpl.java:1755)
>  [artemis-journal-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.journal.impl.JournalImpl.load(JournalImpl.java:1135)
>  [artemis-journal-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.journal.impl.JournalImpl.load(JournalImpl.java:1119)
>  [artemis-journal-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.loadMessageJournal(AbstractJournalStorageManager.java:864)
>  [artemis-server-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.loadJournals(ActiveMQServerImpl.java:2054)
>  [artemis-server-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart2(ActiveMQServerImpl.java:1927)
>  [artemis-server-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:63)
>  [artemis-server-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:427)
>  [artemis-server-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:394)
>  [artemis-jms-server-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:65) 
> [artemis-cli-1.3.0.jar:1.3.0]
>       at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:83) 
> [artemis-cli-1.3.0.jar:1.3.0]
>       at 
> org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:110) 
> [artemis-cli-1.3.0.jar:1.3.0]
>       at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:72) 
> [artemis-cli-1.3.0.jar:1.3.0]
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> [rt.jar:1.8.0_65]
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> [rt.jar:1.8.0_65]
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  [rt.jar:1.8.0_65]
>       at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_65]
>       at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:122) 
> [artemis-boot.jar:1.3.0]
>       at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:45) 
> [artemis-boot.jar:1.3.0]
> This is due to buffers not being aligned for writing to file open with 
> O_DIRECT flag.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to