Uploaded image for project: 'ZABBIX BUGS AND ISSUES'
  1. ZABBIX BUGS AND ISSUES
  2. ZBX-24010

Application modules used as libraries by other modules and libraries

XMLWordPrintable

    • Icon: Problem report Problem report
    • Resolution: Unresolved
    • Icon: Critical Critical
    • None
    • None
    • None
    • None

      The Zabbix server, proxy, agent and agent2 applications, as well as certain Zabbix libraries, violate software composition rules by referring to other library or component module interfaces without establishing proper build dependencies.

      This oftentimes takes the form of libraries or modules including the dependency interface via a backtracking directory traversal to reach the interface definition, without explicitly declaring the dependency on the module or library that provides the implementation of the interface. Find examples to this via grep -E -rn -e 'include "\.\./' src.

      Conversely, some modules invoke functions of other modules and libraries without even including an interface header declaring them, which sometimes don't even exist, or have their declarations in headers of other modules (an example of this is the server lld module, where the declarations for functions implemented by various modules reside in the lld.h header, by is not the case for all modules).

      The resulting artifact build only works due happenstance, by being statically linked, and the dependency symbols becoming resolved during link-time.

      This behavior violates standard pre-processing, translation and linkage rules, in addition to breaking common-sense code isolation, abstraction and encapsulation rules, resulting in poor code quality, complicating maintenance and code reuse, and quality assurance activities.

      Resolving these issues should be prioritized, and a higher standard of quality controls should be implemented to prevent them from repeating.

            palivoda Rostislav Palivoda
            jlambda Juris Lambda
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: