All Products
Search
Document Center

MaxCompute:ODPS-0123144

Last Updated:Jun 10, 2026

This topic describes the error scenario for ODPS-0123144 (Fuxi job failed) and provides solutions.

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

Error message

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

Error description

A MaxCompute User-Defined Function (UDF) exceeded the per-batch processing time limit and timed out.

By default, a UDF must finish processing a batch of records — typically 1,024 rows — within 1,800 seconds. This limit applies to each small batch, not to the total worker runtime. Under normal conditions, SQL processes data at over 10,000 records per second. The limit prevents an infinite loop in a UDF from occupying CPU resources indefinitely.

Solution

Choose one of the following approaches based on your situation.

If the UDF may contain an infinite loop, add logging to diagnose the issue. After the job runs, retrieve the log output from the StdOut tab in Logview.

For Java UDFs, see Performance issues.

For Python UDFs, add the following logging statements to your UDF code:

  • Python 2

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

    print('your log', flush=True)

If the UDF workload is large and processing time is expected to be long, adjust the following parameters to avoid the timeout error:

  • set odps.function.timeout=xxx;

    Sets the UDF execution timeout. Default: 1800s. Range: 1s–3600s. Increase this value if your UDF requires more processing time per batch.

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

    Sets the number of rows MaxCompute processes per batch. Default: 1024. Reduce this value to lower the per-batch processing time.