-
Type:
Problem report
-
Resolution: Unresolved
-
Priority:
Trivial
-
None
-
Affects Version/s: 7.0.24
-
Component/s: Server (S)
-
None
-
Environment:* Zabbix server 7.0.24, Alpine Linux (Docker)
* Selenium Standalone Chromium 4.20.0
* Chromium 124.0.6367.78
-
Support backlog
The configured Browser item timeout is ignored for WebDriver page loads, so a hanging site can block browser.navigate() for up to 300 seconds per call instead of the expected 60 seconds.
Steps to reproduce:
- Configure Zabbix server with WebDriverURL pointing to a Selenium instance and StartBrowserPollers=1
- Set up a target HTTP server that delays responses indefinitely (or longer than 300s)
services: slow-http: image: python:3.12-alpine restart: unless-stopped command: - python3 - -c - | import http.server, time, os delay = int(os.environ.get('DELAY_SECONDS', '600')) class SlowHandler(http.server.BaseHTTPRequestHandler): def do_GET(self): print(f'Got request for {self.path}, sleeping {delay}s...', flush=True) time.sleep(delay) self.send_response(200) self.send_header('Content-Type', 'text/html') self.end_headers() self.wfile.write(b'<html><body>Finally responded</body></html>') def log_message(self, format, *args): print(f'{self.client_address[0]} - {format % args}', flush=True) http.server.HTTPServer(('0.0.0.0', 8888), SlowHandler).serve_forever() ports: - "8888:8888" environment: DELAY_SECONDS: "600" - Create a host monitored directly by the Zabbix server
- Create a Browser item with Timeout: 60s
and the following script:var browser = new Browser(Browser.chromeOptions()); try { browser.navigate("http://slow-target:8888/"); var result = {title: browser.getTitle()}; } catch(e) { var result = {error: e.message}; } finally { browser.navigate("http://slow-target:8888/logout"); return JSON.stringify(result); }
- Wait for the browser poller to pick up the item
Expected:
Timeout after 60s