linxinshuo opened a new issue #2680:
URL: https://github.com/apache/apisix/issues/2680


   ### Issue description
   Current version, the config_etcd watch different prefixes and maintain 
revisions separately, when some prefix be modified, the others can not perceive 
revision change. If etcd enable auto compacted,  the watcher with old revision 
will be canceled because revision be compacted.
   hope the watcher can handle the canceled result,  re-pull the latest 
revision and re-watch
   
   In current version(2.0), canceled response will case panic
   2020/11/10 10:23:25 [error] 46#0: *16354 [lua] config_etcd.lua:448: failed 
to fetch data from etcd: 
   
   > /usr/local/apisix/apisix/core/etcd.lua:115: bad argument #1 to 'ipairs' 
(table expected, got nil)
   stack traceback:
           [C]: in function 'ipairs'
           /usr/local/apisix/apisix/core/etcd.lua:115: in function 'waitdir'
           /usr/local/apisix/apisix/core/config_etcd.lua:255: in function 
'sync_data'
           /usr/local/apisix/apisix/core/config_etcd.lua:424: in function 
</usr/local/apisix/apisix/core/config_etcd.lua:414>
           [C]: in function 'xpcall'
           /usr/local/apisix/apisix/core/config_etcd.lua:414: in function 
</usr/local/apisix/apisix/core/config_etcd.lua:405>,  etcd key: 
/apisix/plugin_metadata, context: ngx.timer
   
   ### Environment
   - apisix version (cmd: apisix version): 2.0
   - OS:
   


----------------------------------------------------------------
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:
[email protected]


Reply via email to