You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2020/06/03 11:51:41 UTC

[GitHub] [incubator-apisix] panhow opened a new issue #1644: bug: error occurs on ACTIVATE upstream health check, but error disappear after restart apisix

panhow opened a new issue #1644:
URL: https://github.com/apache/incubator-apisix/issues/1644


   ### Issue description
   While apisix running, i add a upstream with healthcheck.
   apisix cannot proxy request by this upstream.
   After i restart, apisix works fine.
   
   I won't restart my production LB after configure a upstream with healtchcheck. 
   It doesn't make sense.
   Plz take a look at this. @moonming @membphis 
   
   ### Environment
   
   * apisix version (cmd: `apisix version`): apisix1.1
   * OS: centos7
   
   ### Minimal test code / Steps to reproduce the issue
   1. add route with healthcheck upstream
   ```
   curl 127.0.0.1:9080/apisix/admin/routes -XPOST -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' --data '{"uri":"/testtestt","upstream":{"enable_websocket":true,"nodes":{"10.100.2.66:31652":10,"10.100.2.68:30000":10},"hash_on":"vars","type":"roundrobin","checks":{"active":{"unhealthy":{"http_failures":3,"interval":5,"tcp_failures":2,"timeouts":3},"http_path":"/api/ping","healthy":{"successes":3,"interval":5,"http_statuses":[200,302]},"concurrency":10,"https_verify_certificate":true,"timeout":1,"type":"http"},"passive":{"unhealthy":{"http_failures":3,"http_statuses":[500],"tcp_failures":3,"timeouts":7},"healthy":{"successes":3,"http_statuses":[200,201]},"type":"http"}}}}'
   ```
   2. send request
   ```
   curl 127.0.0.1:9080/testtestt
   ```
   3.1 error occurs
   ```
   2020/06/03 19:34:18 [error] 93632#0: *154929 failed to run balancer_by_lua*: /usr/local/apisix/lua/apisix/balancer.lua:98: bad argument #1 to 'insert' (table expected, got nil)
   stack traceback:
           [C]: in function 'insert'
           /usr/local/apisix/lua/apisix/balancer.lua:98: in function 'create_obj_fun'
           /usr/local/apisix/lua/apisix/core/lrucache.lua:66: in function 'lrucache_checker'
           /usr/local/apisix/lua/apisix/balancer.lua:118: in function 'fetch_healthchecker'
           /usr/local/apisix/lua/apisix/balancer.lua:233: in function 'pick_server'
           /usr/local/apisix/lua/apisix/balancer.lua:298: in function 'load_balancer'
           /usr/local/apisix/lua/apisix.lua:486: in function 'http_balancer_phase'
   ```
   3.2 response with 500 internal error
   ```
   <html>
   <head><title>500 Internal Server Error</title></head>
   <body>
   <center>
   ```
   4. restart apisix
   5. upstream health check works fine, apisix proxy works fine.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org