Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • Kea Kea
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 563
    • Issues 563
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 68
    • Merge requests 68
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • ISC Open Source ProjectsISC Open Source Projects
  • KeaKea
  • Issues
  • #1866
Closed
Open
Issue created May 12, 2021 by Andrei Pavel@andreiMaintainer

segfault on parameter-less forensic logging

When configuring kea-dhcp[46] with a forensic logging without a "parameters" field, it segfaults.

    "hooks-libraries": [
      {
        "library": "libdhcp_legal_log.so"
      }
    ]

kea-dhcp6: /usr/include/boost/smart_ptr/shared_ptr.hpp:728: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = isc::legal_log::BackendStore; typename boost::detail::sp_member_access<T>::type = isc::legal_log::BackendStore*]: Assertion 'px != 0' failed.

#4 0x00007ffff34e1cf5 in boost::shared_ptr<isc::legal_log::BackendStore>::operator-> (this=0x7ffff3558250 <isc::legal_log::BackendStore::instance()::backend_store>) at /usr/include/boo st/smart_ptr/shared_ptr.hpp:728 #5 0x00007ffff34decf1 in load (handle=...) at load_unload.cc:52

This used to work in 1.9.7.

This is also why system tests are failing on Jenkins.

parameters is checked on the first line of BackendStore::parseFile(), it returns on null, and the backend store is not instantiated further down below.

void
BackendStore::parseFile(const ConstElementPtr& parameters) {
     if (!parameters) {
        return;
    }
[..]
    BackendStore::instance().reset(new RotatingFile(path, base, unit, count,
                                                    prerotate, postrotate));
}
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking