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 for Me (Login required).

Search for additional results

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