全部產品
Search
文件中心

MaxCompute:ODPS-0123144

更新時間:Jan 08, 2026

本文介紹錯誤碼ODPS-0123144:Fuxi job failed的報錯情境,並提供對應的解決方案。

錯誤:kInstanceMonitorTimeout(errCode:252) at Odps/xxx/xxx. Detail error msg: CRASH_EXIT, usually caused by bad udf performance

錯誤資訊

ODPS-0123144: Fuxi job failed - kInstanceMonitorTimeout(errCode:252) at Odps/xxx/xxx. Detail error msg: CRASH_EXIT, usually caused by bad udf performance.

錯誤碼描述

MaxCompute UDF處理時間過長導致逾時。預設情況下UDF處理資料的時間是有限制,在處理一批(通常情況下為1024條)記錄時,必須在1800秒內處理完。這個時間限制並不是針對Worker的總已耗用時間,而是處理一小批記錄的時間。通常情況下SQL處理資料的速率超過了萬條/秒,該限制只是為了防止MaxCompute UDF中出現死迴圈,導致長時間佔用CPU資源的情況。

解決方案

如果PyODPS在MaxCompute UDF代碼中增加日誌,用於檢查代碼中是否有死迴圈問題,或者可以在日誌裡列印時間資訊來檢查MaxCompute UDF處理單條資料的時間長度是否符合預期。代碼中需要增加如下列印日誌相關資訊,作業運行成功後,您可以在Logview的StdOut中擷取到日誌資訊。

如果用的Java UDF可以參考效能問題

  • Python 2環境

    sys.stdout.write('your log')
    sys.stdout.flush()
  • Python 3環境

    print('your log', flush=True)

如果實際計算量很大,MaxCompute UDF預計的已耗用時間很長,可以通過調整如下參數避免逾時報錯。

  • set odps.function.timeout=xxx;

    調整UDF運行逾時時間長度。預設值為1800s。可根據實際情況酌情調大。取值範圍為1s~3600s。

  • set odps.sql.executionengine.batch.rowcount=xxx;

    調整MaxCompute一次處理的資料行數。預設值為1024行。可根據實際情況酌情調小。