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 ONE Support launchpad (Login required).

Search for additional results

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