From: https://github.com/SWViewer/swviewer-service/issues/1
Repro:
elukey@stat1004:~$ curl https://api.wikimedia.org/service/lw/inference/v1/models/revertrisk-multilingual:predict -X POST -d ' {"lang": "uk", "rev_id": 39814738}' {"error":"IndexError : pop index out of range"}
Kserve logs:
2023-06-30 07:29:25.400 71 uvicorn.error ERROR [run_asgi():376] Exception in ASGI application Traceback (most recent call last): File "/opt/lib/python/site-packages/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/opt/lib/python/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/opt/lib/python/site-packages/fastapi/applications.py", line 270, in __call__ await super().__call__(scope, receive, send) File "/opt/lib/python/site-packages/starlette/applications.py", line 124, in __call__ await self.middleware_stack(scope, receive, send) File "/opt/lib/python/site-packages/starlette/middleware/errors.py", line 184, in __call__ raise exc File "/opt/lib/python/site-packages/starlette/middleware/errors.py", line 162, in __call__ await self.app(scope, receive, _send) File "/opt/lib/python/site-packages/timing_asgi/middleware.py", line 68, in __call__ await self.app(scope, receive, send_wrapper) File "/opt/lib/python/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ raise exc File "/opt/lib/python/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ await self.app(scope, receive, sender) File "/opt/lib/python/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__ raise e File "/opt/lib/python/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ await self.app(scope, receive, send) File "/opt/lib/python/site-packages/starlette/routing.py", line 706, in __call__ await route.handle(scope, receive, send) File "/opt/lib/python/site-packages/starlette/routing.py", line 276, in handle await self.app(scope, receive, send) File "/opt/lib/python/site-packages/starlette/routing.py", line 66, in app response = await func(request) File "/opt/lib/python/site-packages/fastapi/routing.py", line 235, in app raw_response = await run_endpoint_function( File "/opt/lib/python/site-packages/fastapi/routing.py", line 161, in run_endpoint_function return await dependant.call(**values) File "/opt/lib/python/site-packages/kserve/protocol/rest/v1_endpoints.py", line 69, in predict response, response_headers = await self.dataplane.infer(model_name=model_name, body=body, headers=headers) File "/opt/lib/python/site-packages/kserve/protocol/dataplane.py", line 276, in infer response = await model(body, headers=headers) File "/opt/lib/python/site-packages/kserve/model.py", line 117, in __call__ else self.predict(payload, headers) File "/srv/revert-risk-model/model-server/model.py", line 102, in predict result = KI_module.classify(self.model, request["revision"]) File "/opt/lib/python/site-packages/knowledge_integrity/models/revertrisk_multilingual/model.py", line 407, in classify intermediate_features = extract_features(revision, CLASSIFIER_INTERMEDIATE_FEATURES) File "/opt/lib/python/site-packages/knowledge_integrity/models/revertrisk_multilingual/model.py", line 381, in extract_features return get_features(feature_sources, features, _transformed_revertrisk_features) File "/opt/lib/python/site-packages/knowledge_integrity/featureset.py", line 320, in get_features all_features.update(transformer(all_features)) File "/opt/lib/python/site-packages/knowledge_integrity/models/revertrisk_multilingual/model.py", line 343, in _transformed_revertrisk_features edit_info = get_edit_info( File "/opt/lib/python/site-packages/knowledge_integrity/models/revertrisk_multilingual/model.py", line 297, in get_edit_info actions = et.get_diff() File "/opt/lib/python/site-packages/mwedittypes/mwedittypes.py", line 18, in get_diff self.tree_diff = get_diff(self.prev_wikitext, self.curr_wikitext, lang=self.lang, File "/opt/lib/python/site-packages/mwedittypes/tree_differ.py", line 18, in get_diff diff = d.get_corresponding_nodes(debug=debug) File "/opt/lib/python/site-packages/mwedittypes/tree_differ.py", line 437, in get_corresponding_nodes self.detect_moves(diff) File "/opt/lib/python/site-packages/mwedittypes/tree_differ.py", line 502, in detect_moves diff[cet].pop(cidx) IndexError: pop index out of range