apache/seatunnel · warning

{} is less than {}, set to default value {}.

Error message

{} is less than {}, set to default value {}.

What it means

tabletCountLimitForOnePartition validates the user-provided doris.tablet-size option. If the configured value is below DORIS_TABLET_SIZE_MIN, it logs this warning and resets the value to the minimum, so downstream tablet splitting uses at least the minimum allowed tablets per partition query.

Source

Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/rest/RestService.java:425

                logger.error(errMsg);
                throw new DorisConnectorException(
                        DorisConnectorErrorCode.REST_SERVICE_FAILED, errMsg);
            }

            logger.debug("Choice Doris BE '{}' for tablet '{}'.", target, tabletId);
            be2Tablets.get(target).add(tabletId);
        }
        return be2Tablets;
    }

    @VisibleForTesting
    static int tabletCountLimitForOnePartition(DorisSourceTable dorisSourceTable, Logger logger) {
        int tabletsSize = DorisSourceOptions.DORIS_TABLET_SIZE_DEFAULT;
        if (dorisSourceTable.getTabletSize() != null) {
            tabletsSize = dorisSourceTable.getTabletSize();
        }
        if (tabletsSize < DorisSourceOptions.DORIS_TABLET_SIZE_MIN) {
            logger.warn(
                    "{} is less than {}, set to default value {}.",
                    DorisSourceOptions.DORIS_TABLET_SIZE,
                    DorisSourceOptions.DORIS_TABLET_SIZE_MIN,
                    DorisSourceOptions.DORIS_TABLET_SIZE_MIN);
            tabletsSize = DorisSourceOptions.DORIS_TABLET_SIZE_MIN;
        }
        logger.debug("Tablet size is set to {}.", tabletsSize);
        return tabletsSize;
    }

    @VisibleForTesting
    static List<PartitionDefinition> tabletsMapToPartition(
            DorisSourceTable dorisSourceTable,
            Map<String, List<Long>> be2Tablets,
            String opaquedQueryPlan,
            String database,
            String table,
            Logger logger)

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Set doris.tablet-size to a value >= DORIS_TABLET_SIZE_MIN in the source config
  2. Remove the option entirely to use the default value
  3. If you want more parallelism, increase tablet count in Doris (bucket_num) instead of lowering tablet-size below the minimum

Example fix

// before
tablet-size = 0
// after
tablet-size = 5  // >= configured minimum
Defensive patterns

Strategy: validation

Validate before calling

int tabletSize = config.get("tablet-size");
if (tabletSize < DorisSourceOptions.DORIS_TABLET_SIZE_MIN) {
    tabletSize = DorisSourceOptions.DORIS_TABLET_SIZE_MIN; // or drop the option
}

Prevention

When it happens

Trigger: tabletsSize -> tabletCountLimitForOnePartition is invoked during split enumeration and DorisSourceOptions.DORIS_TABLET_SIZE was set to a value < DORIS_TABLET_SIZE_MIN (e.g. 0, 1, or a negative number).

Common situations: Users setting tablet-size to 1 or 0 hoping for maximum parallelism; config parsed from a property with a wrong unit; copy-pasted configs from older connector versions with different bounds.

Understand the failure class

Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/d01cd07b0ef1e838. Report an issue: GitHub.