[ https://issues.apache.org/jira/browse/IGNITE-8780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16533000#comment-16533000 ]
Andrey Gura commented on IGNITE-8780: ------------------------------------- Merged to master branch. > File I/O operations must be retried if buffer hasn't read/written completely > ---------------------------------------------------------------------------- > > Key: IGNITE-8780 > URL: https://issues.apache.org/jira/browse/IGNITE-8780 > Project: Ignite > Issue Type: Bug > Components: cache > Affects Versions: 2.5 > Reporter: Pavel Kovalenko > Assignee: Alexey Stelmak > Priority: Critical > Labels: important > Fix For: 2.7 > > > Currently we don't actually ensure that we write or read some buffer > completely: > org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager#writeCheckpointEntry > org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager#nodeStart > As result we may not write to the disk actual data and after node restart we > can get BufferUnderflowException, like this: > {noformat} > java.nio.BufferUnderflowException > at java.nio.Buffer.nextGetIndex(Buffer.java:506) > at java.nio.HeapByteBuffer.getLong(HeapByteBuffer.java:412) > at > org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readPointer(GridCacheDatabaseSharedManager.java:1915) > at > org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readCheckpointStatus(GridCacheDatabaseSharedManager.java:1892) > at > org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readMetastore(GridCacheDatabaseSharedManager.java:565) > at > org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.start0(GridCacheDatabaseSharedManager.java:525) > at > org.apache.ignite.internal.processors.cache.GridCacheSharedManagerAdapter.start(GridCacheSharedManagerAdapter.java:61) > at > org.apache.ignite.internal.processors.cache.GridCacheProcessor.start(GridCacheProcessor.java:700) > at > org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1738) > at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:985) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2014) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1723) > at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1151) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:671) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:596) > at org.apache.ignite.Ignition.start(Ignition.java:327) > at org.apache.ignite.ci.db.TcHelperDb.start(TcHelperDb.java:67) > at > org.apache.ignite.ci.web.CtxListener.contextInitialized(CtxListener.java:37) > at > org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:890) > at > org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:532) > at > org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:853) > at > org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:344) > at > org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1501) > at > org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1463) > at > org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:785) > at > org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:261) > at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545) > at > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) > at > org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131) > at org.eclipse.jetty.server.Server.start(Server.java:452) > at > org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105) > at > org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113) > at org.eclipse.jetty.server.Server.doStart(Server.java:419) > at > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) > at org.apache.ignite.ci.web.Launcher.runServer(Launcher.java:68) > at > org.apache.ignite.ci.TcHelperJettyLauncher.main(TcHelperJettyLauncher.java:10) > {noformat} > and node become into unrecoverable state. -- This message was sent by Atlassian JIRA (v7.6.3#76005)