SAP Knowledge Base Article - Preview

3090872 - Blocked Savepoint because data removal during persistence garbage collection

Symptom

  • You observe slow performance in the system as well alerts related to Long-running/Blocked savepoints
  • In a runtime dump, you can observe one or more threads under the section [SAVEPOINT_SHAREDLOCK_OWNERS]
  • One ore more threads listed under [SAVEPOINT_SHAREDLOCK_OWNERS] contains the following (or similar) callstack:
    1: 0x00007fd5630b3d19 in syscall+0x15 (libc.so.6)
    2: 0x00007fd564ec1a69 in Synchronization::Semaphore::timedWait(unsigned long, unsigned long, Execution::Context&)+0x2d5 at LinuxFutexOps.hpp:46 (libhdbbasis.so)
    3: 0x00007fd5681a9d5b in PageAccess::PageIOImpl::executeIO(PageAccess::PageIOCallback::Status::OperationType, PageAccess::PhysPageNo const&, PageAccess::Page*, MemoryManager::ProtectionKey const&)+0x107 at Semaphore.hpp:160 (libhdbdataaccess.so)
    4: 0x00007fd5681af5b4 in PageAccess::PageIOImpl::readPage(PageAccess::PhysPageNo const&, PageAccess::Page*, unsigned long, MemoryManager::ProtectionKey const&)+0x50 at PageIOImpl.cpp:906 (libhdbdataaccess.so)
    5: 0x00007fd56815c971 in PageAccess::LogicalPageAccessImpl::loadPageInternal(PageAccess::PageNo const&, PageAccess::SizeClass&, DataContainer::ContainerID const&, ResourceManager::ResourceHint const&, ResourceManager::Disposition, bool, bool&, ResourceManager::HandleMissingResourceMode, bool const&, PageAccess::LogicalPageResourceProvider&) [clone .constprop.1314]+0x1340 at LogicalPageAccessImpl.cpp:1872 (libhdbdataaccess.so)
    6: 0x00007fd5681dcc0d in PageAccess::LogicalPageAccess::loadPage(PageAccess::PageNo const&, DataContainer::ContainerID const&, ResourceManager::ResourceHint const&, ResourceManager::Disposition, ResourceManager::HandleMissingResourceMode)+0x69 at LogicalPageAccessImpl.hpp:181 (libhdbdataaccess.so)
    7: 0x00007fd5684227d7 in DataContainer::ContainerImpl::loadContainerPage(PageAccess::PageNo const&, ResourceManager::ResourceHint const&, ResourceManager::Disposition, ResourceManager::HandleMissingResourceMode) const+0x93 at ContainerImpl.cpp:924 (libhdbdataaccess.so)
    8: 0x00007fd5683681fd in DataContainer::PageChainContainerSPI::loadPage(PageAccess::PageNo, ResourceManager::ResourceHint const&, ResourceManager::Disposition, ResourceManager::HandleMissingResourceMode, bool) const+0xd9 at PageChainContainerImpl.cpp:1616 (libhdbdataaccess.so)
    9: 0x00007fd5683c8f97 in DataContainer::VarSizeEntryContainerImpl::getEntryImpl(DataContainer::VarSizeEntryID const&, DataContainer::VarSizeEntryAddress&, bool, unsigned long, ResourceManager::Disposition, ResourceManager::HandleMissingResourceMode, bool)+0xb3 at PageChainContainerSPI.hpp:624 (libhdbdataaccess.so)
    10: 0x00007fd5683d3f75 in DataContainer::VarSizeEntryContainer::getEntry(DataContainer::VarSizeEntryID const&, DataContainer::VarSizeEntryAddress&, ResourceManager::Disposition, ResourceManager::HandleMissingResourceMode)+0x11 at VarSizeEntryContainerImpl.cpp:587 (libhdbdataaccess.so)
    11: 0x00007fd5683502c1 in DataContainer::PersistentObjectContainerImpl::derefImpl(DataContainer::PersistentObjectAnyPointer, PageAccess::PersistentObjectHandle<char>&) const+0x40 at PersistentObjectContainerImpl.cpp:729 (libhdbdataaccess.so)
    12: 0x00007fd56e7ad97c in UnifiedTable::TableContainerSPI::getTableDescriptor() const+0x88 at PersistentObjectContainer.hpp:1427 (libhdbunifiedtable.so)
    13: 0x00007fd56e78b5c3 in UnifiedTable::TableContainerImpl::removeData()+0x70 at TableContainerImpl.cpp:7398 (libhdbunifiedtable.so)
    14: 0x00007fd56844277c in DataContainer::ContainerDirectoryImpl::removeInCleanup(DataAccess::PersistenceSession*, ltt::unique_ptr<DataAccess::ConsistentChange, ltt::without_alloc_t, ltt::releasable_deleter<DataAccess::ConsistentChange> >&, DataContainer::ContainerID const&, DataContainer::VarSizeEntryID const&, ResourceManager::HandleMissingResourceMode)+0x228 at ContainerDirectoryImpl.cpp:4404 (libhdbdataaccess.so)
    15: 0x00007fd5684263b0 in DataContainer::ContainerDirectoryUndo::cleanupDoWork(DataAccess::PersistenceSession&, ltt::unique_ptr<DataAccess::ConsistentChange, ltt::without_alloc_t, ltt::releasable_deleter<DataAccess::ConsistentChange> >&, void const*, unsigned long) const+0x140 at ContainerDirectoryUndo.cpp:321 (libhdbdataaccess.so)
    16: 0x00007fd5684266bf in DataContainer::ContainerDirectoryUndo::cleanup(DataAccess::PersistenceSession&, ltt::unique_ptr<DataAccess::ConsistentChange, ltt::without_alloc_t, ltt::releasable_deleter<DataAccess::ConsistentChange> >&, void const*, unsigned long) const+0xb at ContainerDirectoryUndo.cpp:396 (libhdbdataaccess.so)
    17: 0x00007fd568477125 in DataAccess::UndoFileImpl::cleanup(DataAccess::PersistenceSession&, unsigned long, unsigned long, bool&)+0x651 at UndoFileImpl.cpp:2075 (libhdbdataaccess.so)
    18: 0x00007fd56858960d in DataAccess::GarbageCollectorJob::processCleanup(DataAccess::PersistenceSessionSPI&, Container::SafePointerHolder<DataAccess::UndoFileImpl>&, DataAccess::HistoryManager&, bool)+0x139 at UndoFileImpl.cpp:1478 (libhdbdataaccess.so)
    19: 0x00007fd56858a5b5 in DataAccess::GarbageCollectorJob::run(Execution::Context&, Execution::JobObject&)+0xc1 at HistoryManager.cpp:241 (libhdbdataaccess.so)
    20: 0x00007fd56516e6cf in Execution::JobObjectImpl::run(Execution::JobWorker*)+0xb6b at JobExecutorImpl.cpp:1138 (libhdbbasis.so)
    21: 0x00007fd565159c27 in Execution::JobWorker::runJob(ltt::smartptr_handle<Execution::JobObjectForHandle>&)+0x313 at JobExecutorThreads.cpp:381 (libhdbbasis.so)
    22: 0x00007fd56515ba85 in Execution::JobWorker::run(void*&)+0xd51 at JobExecutorThreads.cpp:1278 (libhdbbasis.so)
    23: 0x00007fd56511c3a8 in Execution::Thread::staticMainImp(Execution::Thread*)+0x534 at Thread.cpp:529 (libhdbbasis.so)
    24: 0x00007fd56510cd9d in Execution::pthreadFunctionWrapper(Execution::Thread*)+0x169 at ThreadInterposition.cpp:636 (libhdbbasis.so)
    25: 0x00007fd5648956da in start_thread+0xc6 (libpthread.so.0)
    26: 0x00007fd5630b82cd in __clone+0x69 (libc.so.6)



Read more...

Environment

SAP HANA, platform edition 2.0

Product

SAP HANA, platform edition 2.0

Keywords

GCJob*, gc, garbage, iosystem, I/O, rtedump, runtime, savepoint_blocked, save point, long running , KBA , HAN-DB-PER , SAP HANA Database Persistence , 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.