apisix icon indicating copy to clipboard operation
apisix copied to clipboard

bug: 49#49: *543808 lua entry thread aborted: runtime error: /usr/local/openresty/lualib/resty/core/request.lua:118: bad argument #1 to 'lower'

Open wensenz opened this issue 1 month ago • 1 comments

Current Behavior

2024/05/24 02:14:01 [error] 49#49: *543808 lua entry thread aborted: runtime error: /usr/local/openresty/lualib/resty/core/request.lua:118: bad argument #1 to 'lower' (string expected, got nil) stack traceback: coroutine 0: [C]: in function 'lower'

Expected Behavior

No response

Error Logs

2024/05/24 02:14:01 [error] 49#49: *543808 lua entry thread aborted: runtime error: /usr/local/openresty/lualib/resty/core/request.lua:118: bad argument #1 to 'lower' (string expected, got nil) stack traceback: coroutine 0: [C]: in function 'lower' /usr/local/openresty/lualib/resty/core/request.lua:118: in function '__index' /usr/local/apisix/apisix/core/request.lua:110: in function 'header' /usr/local/apisix/apisix/plugins/key-auth.lua:71: in function 'phase_fun' [string "route#514932448631456457"]:17: in function 'phase_func' /usr/local/apisix/apisix/script.lua:52: in function 'run' /usr/local/apisix/apisix/init.lua:690: in function 'http_access_phase' access_by_lua(nginx.conf:317):2: in main chunk, client: 172.23.0.1, server: _, request: "GET /headers HTTP/1.1"

Steps to Reproduce

use APISIX Dashboard config

consumers :

{
  "username": "zhongzong",
  "plugins": {
    "key-auth": {
      "_meta": {
        "disable": false
      },
      "key": "auth-one"
    }
  }
}

routes: image got-json:

{
  "uri": "/headers",
  "name": "getting-started-headers",
  "script": {
    "chart": {
      "cells": [
        {
          "attrs": {
            "line": {
              "stroke": "#5F95FF",
              "strokeWidth": 1,
              "targetMarker": {
                "name": "classic",
                "size": 8
              }
            }
          },
          "id": "54ef99fb-cd23-48b5-a489-ab94cdbc4e2b",
          "router": {
            "name": "manhattan"
          },
          "shape": "edge",
          "source": {
            "cell": "18837239-661c-4d5e-9758-da9514042430",
            "port": "d2ea18cf-6aa5-4b64-abfd-f21717b17d7e"
          },
          "target": {
            "cell": "a23bc580-c1b6-4214-bd14-d6b7250f5c92",
            "port": "a8f97f78-44ff-4b69-b872-5c6c10caf178"
          },
          "zIndex": 0
        },
        {
          "attrs": {
            "line": {
              "stroke": "#5F95FF",
              "strokeWidth": 1,
              "targetMarker": {
                "name": "classic",
                "size": 8
              }
            }
          },
          "id": "80f4a09d-6674-4b83-82fa-b64825b0c81f",
          "router": {
            "name": "manhattan"
          },
          "shape": "edge",
          "source": {
            "cell": "a23bc580-c1b6-4214-bd14-d6b7250f5c92",
            "port": "c4700cfc-76b2-454f-b205-647123e5af76"
          },
          "target": {
            "cell": "a5439296-d286-44b0-88d5-564a9019a0d8",
            "port": "8b1aff33-52b0-4bcc-a222-6727be437aee"
          },
          "zIndex": 0
        },
        {
          "attrs": {
            "line": {
              "stroke": "#5F95FF",
              "strokeWidth": 1,
              "targetMarker": {
                "name": "classic",
                "size": 8
              }
            }
          },
          "id": "4156ad96-87fb-4cad-9e46-af385d755700",
          "router": {
            "name": "manhattan"
          },
          "shape": "edge",
          "source": {
            "cell": "a5439296-d286-44b0-88d5-564a9019a0d8",
            "port": "70eca251-9016-4f57-93e1-8821fb504b29"
          },
          "target": {
            "cell": "8246f592-4ed5-4a15-9a11-822674737163",
            "port": "11512570-4ccc-438e-84fe-9d98b319a32d"
          },
          "zIndex": 0
        },
        {
          "angle": 45,
          "attrs": {
            "text": {
              "textWrap": {
                "text": "条件判断"
              },
              "transform": "rotate(-45deg)"
            }
          },
          "data": "code==200",
          "id": "a5439296-d286-44b0-88d5-564a9019a0d8",
          "ports": {
            "groups": {
              "bottom": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": {
                  "args": {
                    "dx": 26
                  },
                  "name": "bottom"
                }
              },
              "left": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": {
                  "args": {
                    "dy": 26
                  },
                  "name": "left"
                }
              },
              "right": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": {
                  "args": {
                    "dy": -26
                  },
                  "name": "right"
                }
              },
              "top": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": {
                  "args": {
                    "dx": -26
                  },
                  "name": "top"
                }
              }
            },
            "items": [
              {
                "group": "top",
                "id": "8b1aff33-52b0-4bcc-a222-6727be437aee"
              },
              {
                "group": "right",
                "id": "d6b114a1-7f15-48f6-8c93-fe7c5426ead9"
              },
              {
                "group": "bottom",
                "id": "70eca251-9016-4f57-93e1-8821fb504b29"
              }
            ]
          },
          "position": {
            "x": 219.98780669118025,
            "y": 270
          },
          "shape": "flow-chart-condition-rect",
          "size": {
            "height": 58,
            "width": 58
          },
          "zIndex": 1
        },
        {
          "attrs": {
            "body": {
              "rx": 24,
              "ry": 24
            },
            "text": {
              "textWrap": {
                "text": "开始"
              }
            }
          },
          "id": "18837239-661c-4d5e-9758-da9514042430",
          "ports": {
            "groups": {
              "bottom": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": "bottom"
              },
              "left": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": "left"
              },
              "right": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": "right"
              },
              "top": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": "top"
              }
            },
            "items": [
              {
                "group": "bottom",
                "id": "d2ea18cf-6aa5-4b64-abfd-f21717b17d7e"
              }
            ]
          },
          "position": {
            "x": 160,
            "y": -6
          },
          "shape": "flow-chart-start-rect",
          "size": {
            "height": 42,
            "width": 80
          },
          "zIndex": 2
        },
        {
          "attrs": {
            "text": {
              "text": "key-auth"
            },
            "title": {
              "text": "key-auth"
            }
          },
          "data": {
            "disable": false
          },
          "id": "a23bc580-c1b6-4214-bd14-d6b7250f5c92",
          "ports": {
            "groups": {
              "bottom": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": "bottom"
              },
              "top": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": "top"
              }
            },
            "items": [
              {
                "group": "top",
                "id": "a8f97f78-44ff-4b69-b872-5c6c10caf178"
              },
              {
                "group": "bottom",
                "id": "c4700cfc-76b2-454f-b205-647123e5af76"
              }
            ]
          },
          "position": {
            "x": 100.01219330881975,
            "y": 107
          },
          "shape": "flow-chart-plugin-rect",
          "size": {
            "height": 60,
            "width": 200
          },
          "zIndex": 3
        },
        {
          "attrs": {
            "text": {
              "text": "limit-count"
            },
            "title": {
              "text": "limit-count"
            }
          },
          "data": {
            "allow_degradation": false,
            "count": 2,
            "disable": false,
            "key": "$consumer_name",
            "key_type": "var_combination",
            "policy": "redis",
            "redis_database": 0,
            "redis_host": "172.23.0.9",
            "redis_password": "xxx",
            "redis_port": 6379,
            "redis_timeout": 1000,
            "rejected_code": 503,
            "rejected_msg": "您的请求流量已用完,请找客服充值!",
            "show_limit_quota_header": true,
            "time_window": 60
          },
          "id": "8246f592-4ed5-4a15-9a11-822674737163",
          "ports": {
            "groups": {
              "bottom": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": "bottom"
              },
              "top": {
                "attrs": {
                  "circle": {
                    "fill": "#fff",
                    "magnet": true,
                    "r": 3,
                    "stroke": "#5F95FF",
                    "strokeWidth": 1,
                    "style": {
                      "visibility": "hidden"
                    }
                  }
                },
                "position": "top"
              }
            },
            "items": [
              {
                "group": "top",
                "id": "11512570-4ccc-438e-84fe-9d98b319a32d"
              },
              {
                "group": "bottom",
                "id": "3602d70a-eb80-4fc8-ba7b-76f5fb79a5c6"
              }
            ]
          },
          "position": {
            "x": 100,
            "y": 430
          },
          "shape": "flow-chart-plugin-rect",
          "size": {
            "height": 60,
            "width": 200
          },
          "zIndex": 4
        }
      ]
    },
    "conf": {
      "8246f592-4ed5-4a15-9a11-822674737163": {
        "conf": {
          "allow_degradation": false,
          "count": 2,
          "disable": false,
          "key": "$consumer_name",
          "key_type": "var_combination",
          "policy": "redis",
          "redis_database": 0,
          "redis_host": "172.23.0.9",
          "redis_password": "xxx",
          "redis_port": 6379,
          "redis_timeout": 1000,
          "rejected_code": 503,
          "rejected_msg": "您的请求流量已用完,请找客服充值!",
          "show_limit_quota_header": true,
          "time_window": 60
        },
        "name": "limit-count"
      },
      "a23bc580-c1b6-4214-bd14-d6b7250f5c92": {
        "conf": {
          "disable": false
        },
        "name": "key-auth"
      }
    },
    "rule": {
      "a23bc580-c1b6-4214-bd14-d6b7250f5c92": [
        [
          "code==200",
          "8246f592-4ed5-4a15-9a11-822674737163"
        ]
      ],
      "root": "a23bc580-c1b6-4214-bd14-d6b7250f5c92"
    }
  },
  "script_id": "514932448631456457",
  "upstream": {
    "nodes": [
      {
        "host": "httpbin.org",
        "port": 80,
        "weight": 1
      }
    ],
    "timeout": {
      "connect": 6,
      "send": 6,
      "read": 6
    },
    "type": "roundrobin",
    "scheme": "http",
    "pass_host": "pass",
    "keepalive_pool": {
      "idle_timeout": 60,
      "requests": 1000,
      "size": 320
    }
  },
  "status": 1
}

Environment

i use docker-compose:

version: "3"

services:
  apisix:
    image: apache/apisix:${APISIX_IMAGE_TAG:-3.9.0-debian}
    restart: always
    volumes:
      - ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
      - ./apisix_conf/debug.yaml:/usr/local/apisix/conf/debug.yaml:ro
    depends_on:
      - etcd
    ##network_mode: host
    ports:
      - "9180:9180/tcp"
      - "9080:9080/tcp"
      - "9091:9091/tcp"
      - "9443:9443/tcp"
      - "9092:9092/tcp"
    networks:
      apisix:

  apisix-dashboard:
    image: apache/apisix-dashboard:3.0.1-alpine
    restart: always
    volumes:
      - ./dashboard_conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml:ro
    depends_on:
      - etcd
    ports:
      - "9000:9000"
    networks:
      apisix:

  etcd:
    image: bitnami/etcd:3.5.11
    restart: always
    volumes:
      - etcd_data:/bitnami/etcd
    environment:
      ETCD_ENABLE_V2: "true"
      ALLOW_NONE_AUTHENTICATION: "yes"
      ETCD_ADVERTISE_CLIENT_URLS: "http://etcd:2379"
      ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
    ports:
      - "2379:2379/tcp"
    networks:
      apisix:

  web1:
    image: nginx:1.19.0-alpine
    restart: always
    volumes:
      - ./upstream/web1.conf:/etc/nginx/nginx.conf
    ports:
      - "9081:80/tcp"
    environment:
      - NGINX_PORT=80
    networks:
      apisix:

  web2:
    image: nginx:1.19.0-alpine
    restart: always
    volumes:
      - ./upstream/web2.conf:/etc/nginx/nginx.conf
    ports:
      - "9082:80/tcp"
    environment:
      - NGINX_PORT=80
    networks:
      apisix:

  prometheus:
    image: prom/prometheus:v2.25.0
    restart: always
    volumes:
      - ./prometheus_conf/prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"
    networks:
      apisix:

  grafana:
    image: grafana/grafana:7.3.7
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - "./grafana_conf/provisioning:/etc/grafana/provisioning"
      - "./grafana_conf/dashboards:/var/lib/grafana/dashboards"
      - "./grafana_conf/config/grafana.ini:/etc/grafana/grafana.ini"
    networks:
      apisix:

networks:
  apisix:
    driver: bridge

volumes:
  etcd_data:
    driver: local
  • APISIX version (run apisix version): 3.9.0
  • Operating system (run uname -a):
  • OpenResty / Nginx version (run openresty -V or nginx -V):
  • etcd version, if relevant (run curl http://127.0.0.1:9090/v1/server_info):
  • APISIX Dashboard version, if relevant: 3.0.1-alpine
  • Plugin runner version, for issues related to plugin runners:
  • LuaRocks version, for installation issues (run luarocks --version):

wensenz avatar May 24 '24 03:05 wensenz