Docker-based poller fails on abilities table missing

Hello!
We have a distributed Librenms system. The main one is on version: 25.3.0

librenms@dallas-nms:~$ ./validate.php 
===========================================
Component | Version
--------- | -------
LibreNMS  | 25.3.0-91-g266c806a1 (2025-04-03T21:56:41+00:00)
DB Schema | 2025_03_19_205700_fix_ospfv3_ports_table (331)
PHP       | 8.2.28
Python    | 3.11.2
Database  | MariaDB 10.11.11-MariaDB-0+deb12u1
RRDTool   | 1.7.2
SNMP      | 5.9.3
===========================================

[OK]    Composer Version: 2.8.7
[OK]    Dependencies up-to-date.
[OK]    Database connection successful
[OK]    Database connection successful
[OK]    Database Schema is current
[OK]    SQL Server meets minimum requirements
[OK]    lower_case_table_names is enabled
[OK]    MySQL engine is optimal
[OK]    Database and column collations are correct
[OK]    Database schema correct
[OK]    MySQL and PHP time match
[OK]    Distributed Polling setting is enabled globally
[OK]    Connected to rrdcached
[FAIL]  Poller is not running.  No poller has run within the last 300 seconds.
[FAIL]  No active dispatcher nodes found
[OK]    Locks are functional
[FAIL]  Python wrapper cron entry is not present
[OK]    Redis is functional
[OK]    rrdtool version ok
[OK]    Connected to rrdcached
librenms@dallas-nms:~$ 

The poller node is using docker container which is running the current lastest image 25.3.0.

The poller container keeps restarting itself with the following message in logs:

Waiting 60s for database to be ready...
Database ready!
Updating database schema...

   INFO  Nothing to migrate.  


   INFO  Seeding database.  

  Database\Seeders\DefaultAlertTemplateSeeder ........................ RUNNING  
  Database\Seeders\DefaultAlertTemplateSeeder ...................... 2 ms DONE  

  Database\Seeders\ConfigSeeder ...................................... RUNNING  
  Database\Seeders\ConfigSeeder ................................... 10 ms DONE  

  Database\Seeders\RolesSeeder ....................................... RUNNING  

In Connection.php line 829:
                                                                               
  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'librenms.abiliti  
  es' doesn't exist (Connection: mysql, SQL: select * from `abilities` where   
  `name` = * and `abilities`.`entity_type` = * and `only_owned` = 0 and (`abi  
  lities`.`scope` is null) and (`abilities`.`scope` is null) limit 1)          
                                                                               

In Connection.php line 423:
                                                                               
  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'librenms.abiliti  
  es' doesn't exist                                                            
                                                                               

[cont-init.d] 04-svc-main.sh: exited 1.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

Checked main server and the DB doesn’t have that abilities table.

MariaDB [librenms]> show tables
    -> ;
+--------------------------------+
| Tables_in_librenms             |
+--------------------------------+
| access_points                  |
| alert_device_map               |
| alert_group_map                |
| alert_location_map             |
| alert_log                      |
| alert_rules                    |
| alert_schedulables             |
| alert_schedule                 |
| alert_template_map             |
| alert_templates                |
| alert_transport_groups         |
| alert_transport_map            |
| alert_transports               |
| alerts                         |
| api_tokens                     |
| application_metrics            |
| applications                   |
| authlog                        |
| availability                   |
| bgpPeers                       |
| bgpPeers_cbgp                  |
| bill_data                      |
| bill_history                   |
| bill_perms                     |
| bill_port_counters             |
| bill_ports                     |
| bills                          |
| cache                          |
| cache_locks                    |
| callback                       |
| cef_switching                  |
| component                      |
| component_prefs                |
| component_statuslog            |
| config                         |
| custom_map_backgrounds         |
| custom_map_edges               |
| custom_map_node_images         |
| custom_map_nodes               |
| custom_maps                    |
| customers                      |
| customoids                     |
| dashboards                     |
| device_graphs                  |
| device_group_device            |
| device_groups                  |
| device_outages                 |
| device_relationships           |
| devices                        |
| devices_attribs                |
| devices_group_perms            |
| devices_perms                  |
| entPhysical                    |
| entPhysical_state              |
| entityState                    |
| eventlog                       |
| graph_types                    |
| hrDevice                       |
| hrSystem                       |
| ipsec_tunnels                  |
| ipv4_addresses                 |
| ipv4_mac                       |
| ipv4_networks                  |
| ipv6_addresses                 |
| ipv6_nd                        |
| ipv6_networks                  |
| isis_adjacencies               |
| juniAtmVp                      |
| links                          |
| loadbalancer_rservers          |
| loadbalancer_vservers          |
| locations                      |
| mac_accounting                 |
| mefinfo                        |
| mempools                       |
| migrations                     |
| model_has_permissions          |
| model_has_roles                |
| mpls_lsp_paths                 |
| mpls_lsps                      |
| mpls_saps                      |
| mpls_sdp_binds                 |
| mpls_sdps                      |
| mpls_services                  |
| mpls_tunnel_ar_hops            |
| mpls_tunnel_c_hops             |
| munin_plugins                  |
| munin_plugins_ds               |
| netscaler_vservers             |
| notifications                  |
| notifications_attribs          |
| ospf_areas                     |
| ospf_instances                 |
| ospf_nbrs                      |
| ospf_ports                     |
| ospfv3_areas                   |
| ospfv3_instances               |
| ospfv3_nbrs                    |
| ospfv3_ports                   |
| packages                       |
| pdb_ix                         |
| pdb_ix_peers                   |
| permissions                    |
| plugins                        |
| poller_cluster                 |
| poller_cluster_stats           |
| poller_groups                  |
| pollers                        |
| port_group_port                |
| port_groups                    |
| ports                          |
| ports_adsl                     |
| ports_fdb                      |
| ports_nac                      |
| ports_perms                    |
| ports_stack                    |
| ports_statistics               |
| ports_stp                      |
| ports_vdsl                     |
| ports_vlans                    |
| printer_supplies               |
| processes                      |
| processors                     |
| proxmox                        |
| proxmox_ports                  |
| pseudowires                    |
| push_subscriptions             |
| qos                            |
| role_has_permissions           |
| roles                          |
| route                          |
| sensors                        |
| sensors_to_state_indexes       |
| service_templates              |
| service_templates_device       |
| service_templates_device_group |
| services                       |
| session                        |
| sessions                       |
| slas                           |
| state_indexes                  |
| state_translations             |
| storage                        |
| stp                            |
| syslog                         |
| tnmsneinfo                     |
| transceivers                   |
| transport_group_transport      |
| ucd_diskio                     |
| users                          |
| users_prefs                    |
| users_widgets                  |
| vendor_ouis                    |
| view_port_mac_links            |
| vlans                          |
| vminfo                         |
| vrf_lite_cisco                 |
| vrfs                           |
| wireless_sensors               |
+--------------------------------+
159 rows in set (0.001 sec)

MariaDB [librenms]> 

Any ideas and suggestions on the fix of this?
Thank you!

That table was removed last week but wasn’t part of 25.3.0 so you must have at some point moved to the daily branch or tested the bouncer PR.

Run validate.php in a console or webui and run the sql fixes it should give you.

To re-iterate, mixing Docker container and non-docker installs in the same cluster is a recipe for disaster. (especially if one of the non-docker installs is set to daily updates)

Hi Laf,

Thanks for the answer. I just ran the validate however it didn’t give me any sql fix. All the DB validations are pass.
We use the daily.sh to update the instence.
Any idea for this?

librenms@dallas-nms:~$ ./validate.php 
===========================================
Component | Version
--------- | -------
LibreNMS  | 25.3.0-91-g266c806a1 (2025-04-03T21:56:41+00:00)
DB Schema | 2025_03_19_205700_fix_ospfv3_ports_table (331)
PHP       | 8.2.28
Python    | 3.11.2
Database  | MariaDB 10.11.11-MariaDB-0+deb12u1
RRDTool   | 1.7.2
SNMP      | 5.9.3
===========================================

[OK]    Composer Version: 2.8.7
[OK]    Dependencies up-to-date.
[OK]    Database connection successful
[OK]    Database connection successful
[OK]    Database Schema is current
[OK]    SQL Server meets minimum requirements
[OK]    lower_case_table_names is enabled
[OK]    MySQL engine is optimal
[OK]    Database and column collations are correct
[OK]    Database schema correct
[OK]    MySQL and PHP time match
[OK]    Distributed Polling setting is enabled globally
[OK]    Connected to rrdcached
[FAIL]  Poller is not running.  No poller has run within the last 300 seconds.
[FAIL]  No active dispatcher nodes found
[OK]    Locks are functional
[FAIL]  Python wrapper cron entry is not present
[OK]    Redis is functional
[OK]    rrdtool version ok
[OK]    Connected to rrdcached
librenms@dallas-nms:~$ 

Hey Murrant,

Thanks for the note! I hadn’t noticed anything like that before. Do you think it might be due to a mismatch between the Docker and non-Docker installations? Like the missing table issue?

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.