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