Skip to content

hung ad query causes blocking #1

@benemorius

Description

@benemorius

The daemon is still running but not handling requests and not outputting anything on the console or any log file since several hours ago. Looking at stack traces of all the threads, it appears that the ad query is hung waiting to receive data with an open lock on badge_list_lock. Presumably the ad call can be made to timeout, except it's odd that it wouldn't do that by default. I haven't looked further yet.

Thread 2 (Thread 0x74eff460 (LWP 5127)):
Traceback (most recent call first):
  File "/usr/local/lib/python3.4/dist-packages/ldap3/strategy/sync.py", line 82, in receiving
    data = self.connection.socket.recv(socket_size)
  File "/usr/local/lib/python3.4/dist-packages/ldap3/strategy/sync.py", line 160, in _get_response
    responses = self.receiving()
  File "/usr/local/lib/python3.4/dist-packages/ldap3/strategy/base.py", line 324, in get_response
    responses = self._get_response(message_id)
  File "/usr/local/lib/python3.4/dist-packages/ldap3/strategy/sync.py", line 142, in post_send_search
    responses, result = self.get_response(message_id)
  File "/usr/local/lib/python3.4/dist-packages/ldap3/core/connection.py", line 744, in search
    response = self.post_send_search(self.send('searchRequest', request, controls))
  File "/usr/local/lib/python3.4/dist-packages/ldap3/extend/standard/PagedSearch.py", line 63, in paged_search_generator
    None if cookie is True else cookie)
  File "/usr/local/lib/python3.4/dist-packages/ldap3/extend/standard/PagedSearch.py", line 111, in paged_search_accumulator
    paged_criticality):
  File "/usr/local/lib/python3.4/dist-packages/ldap3/extend/__init__.py", line 123, in paged_search
    paged_criticality)
  File "/root/bin/DMSdaemon.py", line 249, in _get_badges_from_ad
    conn.extend.standard.paged_search("ou=Members,dc=dms,dc=local", ad_string, attributes=['employeeID'], generator=False)
  File "/root/bin/DMSdaemon.py", line 226, in _update_all_badges
    common_badge_list = self._get_badges_from_ad()
  File "/root/bin/DMSdaemon.py", line 208, in _update_badge
Thread 3 (Thread 0x758ff460 (LWP 5126)):
Traceback (most recent call first):
  File "/usr/lib/python3.4/threading.py", line 290, in wait
    waiter.acquire()
  File "/usr/lib/python3.4/threading.py", line 421, in acquire
    self._cond.wait(timeout)
  File "/root/bin/DMSdaemon.py", line 135, in _verify_badge
    with badge_list_lock:
  File "/root/bin/DMSdaemon.py", line 110, in run
    if self._verify_badge(door, badge):
  File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.4/threading.py", line 888, in _bootstrap
    self._bootstrap_inner()

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions