Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-13115

Master key can't be changed if Unicode symbols present

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.9
    • None
    • None

    Description

      The master key can't be changed if there are Unicode symbols in the name.
      The reason is the wrong key name length calculation.

      [2020-06-03 18:43:35,289][ERROR][disco-notifier-worker-#84%grid-1%][IgniteTestResources] Critical system error detected. Will be handled accordingly to configured handler [hnd=NoOpFailureHandler [super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext [type=CRITICAL_ERROR, err=class o.a.i.i.processors.cache.persistence.StorageException: Unable to write]]
      class org.apache.ignite.internal.processors.cache.persistence.StorageException: Unable to write
      	at org.apache.ignite.internal.processors.cache.persistence.wal.filehandle.FsyncFileWriteHandle.flush(FsyncFileWriteHandle.java:476)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.filehandle.FsyncFileWriteHandle.flush(FsyncFileWriteHandle.java:404)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.filehandle.FsyncFileWriteHandle.flushOrWait(FsyncFileWriteHandle.java:344)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.filehandle.FsyncFileWriteHandle.fsync(FsyncFileWriteHandle.java:586)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.filehandle.FsyncFileHandleManagerImpl.flush(FsyncFileHandleManagerImpl.java:167)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager.flush(FileWriteAheadLogManager.java:903)
      	at org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.writeRaw(MetaStorage.java:438)
      	at org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.write(MetaStorage.java:401)
      	at org.apache.ignite.internal.managers.encryption.GridEncryptionManager.writeKeysToMetaStore(GridEncryptionManager.java:822)
      	at org.apache.ignite.internal.managers.encryption.GridEncryptionManager.doChangeMasterKey(GridEncryptionManager.java:956)
      	at org.apache.ignite.internal.managers.encryption.GridEncryptionManager.performMasterKeyChange(GridEncryptionManager.java:1086)
      	at org.apache.ignite.internal.util.distributed.DistributedProcess.lambda$new$2(DistributedProcess.java:148)
      	at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:732)
      	at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:533)
      	at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2641)
      	at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2679)
      	at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
      	at java.lang.Thread.run(Thread.java:748)
      Caused by: java.io.IOException: java.lang.IllegalStateException: Failed to write record: WALRecord [size=418, chainSize=418, pos=FileWALPointer [idx=0, fileOff=402386, len=418], type=MASTER_KEY_CHANGE_RECORD]
      	... 18 more
      Caused by: java.lang.IllegalStateException: Failed to write record: WALRecord [size=418, chainSize=418, pos=FileWALPointer [idx=0, fileOff=402386, len=418], type=MASTER_KEY_CHANGE_RECORD]
      	at org.apache.ignite.internal.processors.cache.persistence.wal.filehandle.FsyncFileWriteHandle.fillBuffer(FsyncFileWriteHandle.java:512)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.filehandle.FsyncFileWriteHandle.flush(FsyncFileWriteHandle.java:464)
      	... 17 more
      Caused by: java.nio.BufferOverflowException
      	at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:363)
      	at java.nio.ByteBuffer.put(ByteBuffer.java:859)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordDataV1Serializer.writePlainRecord(RecordDataV1Serializer.java:1821)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordDataV2Serializer.writePlainRecord(RecordDataV2Serializer.java:332)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordDataV1Serializer.writeRecord(RecordDataV1Serializer.java:238)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordV2Serializer$2.writeWithHeaders(RecordV2Serializer.java:189)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordV1Serializer.writeWithCrc(RecordV1Serializer.java:414)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordV2Serializer.writeRecord(RecordV2Serializer.java:232)
      	at org.apache.ignite.internal.processors.cache.persistence.wal.filehandle.FsyncFileWriteHandle.fillBuffer(FsyncFileWriteHandle.java:509)
      	... 18 more
      
      

      Attachments

        Issue Links

          Activity

            People

              NSAmelchev Nikita Amelchev
              NSAmelchev Nikita Amelchev
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m