Move FIXME-s to Issues

Issue #686 closed
SzV created an issue

I think seeing all this someone may contribute.

  • libmonit/test/CommandTest.c:267: / FIXME: MONIT-35: OpenBSD and AIX vfork() doesn't share memory, so the current implementation of Command_execute() cannot pass the execve() error to parent. Disable the unit test on OpenBSD and AIX for now. /
  • libmonit/src/system/os/aix/Link.inc:50: //FIXME: L->state and L->duplex are not implemented
  • src/terminal/Box.h:72:T Box_new(StringBuffer_T b, int columnsCount, BoxColumn_T *columns, boolean_t printHeader); //FIXME: when OutputStream is added, use it instead of StringBuffer
  • src/http/engine.c:340://FIXME: don't store the translated hostname->IPaddress on Monit startup to support DHCP hosts ... resolve the hostname in _authenticateHost()
  • src/ssl/Ssl.c:97://FIXME: refactor Ssl_connect(), Ssl_write() and Ssl_read() + SslServer_accept (and the whole network layer) to be really non-blocking
  • src/process/ProcessTree.c:444://FIXME: move to standalone system class
  • src/process/ProcessTree.c:484://FIXME: move to standalone system class
  • src/monit.h:108://FIXME: we can export this type in libmonit
  • src/monit.h:165://FIXME: refactor Run_Flags to bit field
  • src/monit.h:168: Run_Foreground = 0x2, /*< Don't daemonize Monit / //FIXME: cleanup: Run_Foreground and Run_Daemon are mutually exclusive => no need for 2 flags
  • src/monit.h:169: Run_Daemon = 0x4, /*< Daemonize Monit / //FIXME: cleanup: Run_Foreground and Run_Daemon are mutually exclusive => no need for 2 flags
  • src/monit.h:171: Run_UseSyslog = 0x10, /*< Use syslog / //FIXME: cleanup: no need for standalone flag ... if syslog is enabled, don't set Run.files.log, then (Run.flags&Run_Log && ! Run.files.log => syslog)
  • src/monit.h:911: char match_string; /< Match string / //FIXME: union?
  • src/monit.h:912: char match_path; /< File with matching rules / //FIXME: union?
  • src/monit.h:982: //FIXME: union
  • src/monit.h:1058: MD_T cs_sum; /*< Checksum / //FIXME: allocate dynamically only when necessary
  • src/monit.h:1109: //FIXME: move global SystemInfo_T systeminfo here (for System service context)
  • src/monit.h:1120://FIXME: use union for type-specific rules
  • src/monit.h:1189: struct timeval collected; /*< When were data collected / //FIXME: replace with uint64_t? (all places where timeval is used) ... Time_milli()?
  • src/monit.h:1338:/ FIXME: move remaining prototypes into seperate header-files /
  • src/validate.c:867: /* FIXME: Refactor: Initialize the filesystems table ahead of file and filesystems test and index it by device id + replace the Str_startsWith() with lookup to the table by device id (obtained via file's stat()).
  • src/validate.c:1293: // FIXME: The Service_Program must collect the exit value from last run, even if the program start should be skipped in this cycle => let check program always run the test (to be refactored with new scheduler)
  • src/validate.c:1370: //FIXME: instead of pause, try to test, but ignore any errors in the start timeout timeframe ... will allow to display the port response time as soon as available, instead of waiting for 30+ seconds
  • src/validate.c:1381: //FIXME: instead of pause, try to test, but ignore any errors in the start timeout timeframe ... will allow to display the port response time as soon as available, instead of waiting for 30+ seconds
  • src/validate.c:1663: //FIXME: the current off-by-one-cycle based design requires that the check program will collect the exit value next cycle even if program startup should be skipped in the given cycle => must test skip here (new scheduler will obsolete this deferred skip checking)
  • src/state.c:153: //FIXME: when Link API is moved from libmonit to monit, save also link bytes in/out and packets in/out history, so the network statistics is not reset on each monit reload
  • src/event.h:34: Event_Resource = 0x2, //FIXME: split to more specific events (cpu, totalcpu, mem, totalmem, loadaverage, space, inode, ...)
  • src/event.h:36: Event_Timestamp = 0x8, //FIXME: split to more specific events (atime, mtime, ctime)
  • src/event.h:56: Event_Link = 0x800000, //FIXME: split to more specific events (link status, link errors)
  • src/protocols/radius.c:171: / FIXME: validate it /
  • src/protocols/http.c:202: /* FIXME:
  • src/protocols/http.c:205: /* FIXME:
  • src/protocols/http.c:209: * I.e. implement support for Chunked encoding (see above FIXME comment - we should have one read function, which can be used to read data and reuse it for all tests)
  • src/protocols/http.c:231: //FIXME: add decompression support to InputStream and switch here to it + set Accept-Encoding to gzip, so the server can send body compressed (if we test checksum/content)
  • src/device/sysdep_SOLARIS.c:117: //FIXME: if the zpool state has error, trigger the fs event, can also report number of read/write/checksum errors (see vdev_stat_t in /usr/include/sys/fs/zfs.h)
  • src/device/sysdep_LINUX.c:369: // FIXME: when libev is added register the mount table handler in libev and stop polling here
  • src/device/sysdep_NETBSD.c:251: //FIXME: NetBSD kernel has NFS statistics as well, but there is no clear mapping between the kernel label ("nfsX" style) and the NFS mount => we don't support NFS currently
  • src/device/sysdep_FREEBSD.c:300: //FIXME: can add ZFS support (see sysdep_SOLARIS.c), but libzfs headers are not installed on FreeBSD by default (part of "cddl" set)
  • src/device/sysdep_AIX.c:125: * FIXME:
  • src/device/sysdep_DARWIN.c:149: //FIXME: add disk error statistics test: can use kIOBlockStorageDriverStatisticsWriteErrorsKey + kIOBlockStorageDriverStatisticsReadErrorsKey
  • src/device/sysdep_DARWIN.c:251: //FIXME: cache mount informations (register for mount/unmount notification)
  • src/device/sysdep_DRAGONFLY.c:251: //FIXME: add HAMMER support
  • src/device/sysdep_HPUX.c:70: //FIXME: not implemented

Comments (2)

  1. SzV reporter
    • libmonit/src/io/OutputStream.c:92: // TODO: Instead of shifting, use buffer as a circular buffer
    • src/p.y:1369: TODO: Parser is in need of refactoring */
    • src/monit.c:328: before it ifself exit. TODO: Later refactored versions will use a
    • src/validate.c:856: /* TODO: https://bitbucket.org/tildeslash/monit/issues/401 Refactor and use mmap instead of naive std file io.
  2. Tildeslash repo owner

    The inlined FIXME/TODO comments are internal notes and non-critical ideas for refactorings and cleanups - it's not carved in stone (there could be a better way). It's easier to work with then Issues, as it's part of the code and updated when the code is changed/refactored.

    The Issues serve for escalation of user-visible problems and feature requests. If the FIXME/TODO brings some user-noticable feature, we create an Issue for it (such as ZFS support for FreeBSD: #555).

  3. Log in to comment