SAP Knowledge Base Article - Preview

2574825 - HANA dpserver service crashed with invalid size class

Symptom

  • The HANA dpserver service crashed due to corruption.

  • Using hdbpersdiag command to load the corrupted physical page shows the following:
    ERROR: Page 0x9000000041c0P [0x41c0,256k,0] loaded with error: exception 3020025: Invalid size class <unknown size class 8>.

  • Log from dpserver crashdump:
    CRASH_SHORTINFO] Exception short info: (2017-12-01 18:00:15 675 Local)
    SIGNAL 6 (SIGABRT) caught, sender PID: 12345, PID: 12345, thread: 32765[thr=54606]: Request, value int: 0, ptr: 0x0000000000000000, time: 2017-12-01 18:00:15 675 Local
    [OK]

    [CRASH_STACK] Stacktrace of crash: (2017-12-01 18:00:15 677 Local)
    ----> Pending exceptions (possible root cause) <----
    exception 1: no.3020025 (DataAccess/PageAccess/impl/PageImpl.cpp:379)
    Invalid size class <unknown size class 8>.; $physpno$=0x9000000041c0P [0x41c0,256k,0]
    exception throw location:
    1: 0x00007fc5e628ffde in PageAccess::Page::verifyHeader(PageAccess::SizeClass, DataAccess::SavepointVersion const&, bool) const+0xea at PageImpl.cpp:379 (libhdbdataaccess.so)
    2: 0x00007fc5e622ee61 in PageAccess::PageIteratorOnSnapshotConverter::loadPage(PageAccess::PhysPageNo const&, DAEncryption::InitializationVector const&, unsigned int, unsigned long, unsigned int)+0x250 at Page.hpp:292(libhdbdataaccess.so)
    3: 0x00007fc5e622ff94 in PageAccess::PageIteratorOnSnapshotConverter::PageIteratorOnSnapshotConverter(ltt::allocator&, ResourceManager::ResourceContainer&, PageAccess::PageIO&, ltt::refcounted_handle<DAEncryption::EncryptionManager> const&, DAEncryption::InitializationVector const&, DataAccess::SavepointVersion const&, PageAccess::PhysPageNo const&, PageAccess::ConverterSPI::CalculationMethod)+0x220 at ConverterStreamImpl.cpp:242 (libhdbdataaccess.so)
    4: 0x00007fc5e62313fe in PageAccess::StreamImpl<PageAccess::PageIteratorOnSnapshotConverter, PageAccess::PhysPageNo, PageAccess::SnapshotPageControlBlock>::StreamImpl(PageAccess::Converter::Type const&, ltt::allocator&, ResourceManager::ResourceContainer&, PageAccess::PageIO&, ltt::refcounted_handle<DAEncryption::EncryptionManager> const&, DAEncryption::InitializationVector const&, DataAccess::SavepointVersion const&, PageAccess::ConverterSPI::CalculationMethod, PageAccess::PhysPageNo, PageAccess::Converter::StreamEntryType const&, bool)+0x8a at ConverterStreamImpl.hpp:252 (libhdbdataaccess.so)
    5: 0x00007fc5e62305dc in PageAccess::StreamSPI::createInstance(PageAccess::Converter::Type, ltt::allocator&, ResourceManager::ResourceContainer&, PageAccess::PageIO&, ltt::refcounted_handle<DAEncryption::EncryptionManager> const&, DAEncryption::InitializationVector const&, DataAccess::SavepointVersion const&, PageAccess::ConverterSPI::CalculationMethod, PageAccess::PhysPageNo, PageAccess::Converter::StreamEntryType)+0xc8 at ConverterStreamImpl.cpp:129 (libhdbdataaccess.so)
    6: 0x00007fc5e621aba6 in PageAccess::ConverterImpl::openSnapshotAsStream(ltt::allocator&, PageAccess::PhysPageNo const&, DAEncryption::InitializationVector const&, DataAccess::SavepointVersion const&, PageAccess::Converter::StreamEntryType) const+0x52 at ConverterImpl.cpp:666 (libhdbdataaccess.so)
    7: 0x00007fc5e621e151 in PageAccess::ConverterSPI::openSnapshotAsStream(ltt::allocator&, PageAccess::PhysPageNo const&, DAEncryption::InitializationVector const&, DataAccess::SavepointVersion const&, PageAccess::Converter::StreamEntryType) const+0xd0 at ConverterImpl.cpp:191 (libhdbdataaccess.so)
    8: 0x00007fc5e5f6d3c4 in DataAccess::PersistentSpaceImpl::freePagesForSnapshot(bool, DataAccess::PersistentSpaceImpl::DropSnapshotInfo&, unsigned long, char*)+0x920 at PersistentSpaceImpl.cpp:1761(libhdbdataaccess.so)
    9: 0x00007fc5e5f6d681 in DataAccess::PersistentSpaceImpl::doFreePagesForSnapshot(ltt::vector<DataAccess::PersistentSpaceImpl::DropSnapshotInfo>&, ltt::vector<unsigned long> const&, bool, unsigned long, char*, unsigned long&, unsigned long&, unsigned long&, unsigned long&)+0xe0 at PersistentSpaceImpl.cpp:2160 (libhdbdataaccess.so)
    10: 0x00007fc5e5f6e7f8 in DataAccess::PersistentSpaceImpl::dropSnapshots(ltt::vector<unsigned long> const&, DataAccess::SavepointPurpose::Purpose, bool, bool, unsigned long, unsigned int, unsigned long&, unsigned long&, unsigned long&, unsigned long&, Synchronization::LockHandle<Synchronization::NonrecursiveMutex, false>)+0x784 at PersistentSpaceImpl.cpp:2148 (libhdbdataaccess.so)
    11: 0x00007fc5e5f6fd39 in DataAccess::PersistentSpaceImpl::dropSnapshot(unsigned long, DataAccess::SavepointPurpose::Purpose, bool, unsigned long&, unsigned long&, unsigned long&, unsigned long&)+0x1c5 at PersistentSpaceImpl.cpp:1800 (libhdbdataaccess.so)
    12: 0x00007fc5e5f700a1 in DataAccess::PersistentSpaceImpl::dropSnapshot(unsigned long)+0x50 at PersistentSpaceImpl.cpp:342(libhdbdataaccess.so)
    13: 0x00007fc5f45afe7c in Backup::BackupSrc_CommonSnapshot::prepareBackupOperation()+0x508 at BackupSrc_CommonSnapshot.cpp:152 (libhdbbackup.so)
    14: 0x00007fc5f4574ab4 in Backup::BackupExe_SimpleExecutor::globalSavepoint(ltt::list<ltt::smartptr_handle<Backup::BackupSrc_Source> >&, unsigned long&, unsigned long&, ltt::guid&, unsigned long&)+0x1a0 at BackupExe_SimpleExecutor.cpp:303 (libhdbbackup.so)
    15: 0x00007fc5f455a2b4 in Backup::BackupExe_RequestHandler::globalSavePoint(Backup::BackupExe_Request&, Backup::BackupExe_Response&)+0x340 at BackupExe_RequestHandler.cpp:941 (libhdbbackup.so)
    16: 0x00007fc5f456503b in Backup::BackupExe_RequestHandler::handleRequest(Backup::BackupExe_Request&, Backup::BackupExe_Response&, Backup::BackupCbc_Federation*, Backup::RecoverCbc_Federation*)+0x347 at BackupExe_RequestHandler.cpp:697 (libhdbbackup.so)
    17: 0x00007fc5f43d9ea8 in Backup::Backup_ExecutorHandler::handleRequest(TrexNet::Request&, Backup::BackupCbc_Federation*)+0xa4 at Backup_ExecutorHandler.cpp:53 (libhdbbackup.so)
    18: 0x00007fc607921dcf in TRexAPI::TREXIndexServer::handle(TrexNet::Request&, TrexService::HandlerContext&)+0x48eb at TREXIndexServer.cpp:5095 (hdbdpserver)
    19: 0x00007fc5e381b510 in TrexService::WorkerThread::run(void*)+0xae0 at TrexServiceThreads.cpp:586 (libhdbbasement.so)
    20: 0x00007fc5e383a461 in TrexThreads::PoolThread::run()+0x830 at PoolThread.cpp:389 (libhdbbasement.so)
    21: 0x00007fc5e383bf00 in TrexThreads::PoolThread::run(void*&)+0x10 at PoolThread.cpp:165 (libhdbbasement.so)
    22: 0x00007fc5e24a15f7 in Execution::Thread::staticMainImp(void**)+0x743 at Thread.cpp:463 (libhdbbasis.so)
    23: 0x00007fc5e24a2c88 in Execution::Thread::staticMain(void*)+0x34 at ThreadMain.cpp:26 (libhdbbasis.so


    Therefore the dpserver service is down and backups are not working.


Read more...

Environment

 HANA 122.x

Product

SAP HANA 1.0, platform edition ; SAP HANA, platform edition 2.0

Keywords

corruption, unknown, class, 256KB, physical, pageaccess, topology, DPServer, , KBA , HAN-DB-ENG , SAP HANA DB Engines , HAN-DB , SAP HANA Database , Problem

About this page

This is a preview of a SAP Knowledge Base Article. Click more to access the full version on SAP for Me (Login required).

Search for additional results

Visit SAP Support Portal's SAP Notes and KBA Search.