Description
Path: /integrations/destinations/apache-iceberg
dev=> CREATE SINK product_order_sink FROM product_order_counts
WITH (
connector = 'iceberg',
type = 'append-only',
catalog.type = 'rest',
catalog.uri = 'http://nessie:19120/api/',
catalog.name = 'nessie', -- Added this line
warehouse.path = 's3://warehouse/risingwave-data',
s3.endpoint = 'http://minio:9000',
s3.region = 'us-east-1',
s3.access.key = 'minioadmin',
s3.secret.key = 'minioadmin',
database.name = 'dev',
table.name = 'product_order_counts',
force_append_only=true,
s3.path.style.access = 'true',
);
2025-04-07T10:14:21.329625868Z WARN rw-standalone-meta risingwave_connector_node: Unable to parse error response thread="Thread-3038" class="org.apache.iceberg.rest.ErrorHandlers" error="java.io.UncheckedIOException: com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input\n at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION
disabled); line: 1]\n\tat org.apache.iceberg.util.JsonUtil.parse(JsonUtil.java:101)\n\tat org.apache.iceberg.rest.responses.ErrorResponseParser.fromJson(ErrorResponseParser.java:71)\n\tat org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.parseResponse(ErrorHandlers.java:194)\n\tat org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:181)\n\tat org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:323)\n\tat org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:262)\n\tat org.apache.iceberg.rest.HTTPClient.get(HTTPClient.java:358)\n\tat org.apache.iceberg.rest.RESTClient.get(RESTClient.java:96)\n\tat org.apache.iceberg.rest.RESTSessionCatalog.loadInternal(RESTSessionCatalog.java:438)\n\tat org.apache.iceberg.rest.RESTSessionCatalog.loadTable(RESTSessionCatalog.java:462)\n\tat org.apache.iceberg.catalog.BaseSessionCatalog$AsCatalog.loadTable(BaseSessionCatalog.java:99)\n\tat org.apache.iceberg.rest.RESTCatalog.loadTable(RESTCatalog.java:102)\n\tat org.apache.iceberg.rest.CatalogHandlers.loadTable(CatalogHandlers.java:315)\n\tat com.risingwave.connector.catalog.JniCatalogWrapper.loadTable(JniCatalogWrapper.java:49)\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input\n at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION
disabled); line: 1]\n\tat com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\n\tat com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:5008)\n\tat com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4910)\n\tat com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3860)\n\tat com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3828)\n\tat org.apache.iceberg.util.JsonUtil.parse(JsonUtil.java:99)\n\t... 13 more\n"
Exception in thread "Thread-3038" org.apache.iceberg.exceptions.NoSuchTableException:
at org.apache.iceberg.rest.ErrorHandlers$TableErrorHandler.accept(ErrorHandlers.java:112)
at org.apache.iceberg.rest.ErrorHandlers$TableErrorHandler.accept(ErrorHandlers.java:102)
2025-04-07T10:14:21.330620548Z WARN rw-standalone-meta jni::wrapper::objects::global_ref: Dropping a GlobalRef in a detached thread. Fix your code if this message appears frequently (see the GlobalRef docs).
at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:211)
at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:323)
at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:262)
at org.apache.iceberg.rest.HTTPClient.get(HTTPClient.java:358)
at org.apache.iceberg.rest.RESTClient.get(RESTClient.java:96)
at org.apache.iceberg.rest.RESTSessionCatalog.loadInternal(RESTSessionCatalog.java:438)
at org.apache.iceberg.rest.RESTSessionCatalog.loadTable(RESTSessionCatalog.java:462)
at org.apache.iceberg.catalog.BaseSessionCatalog$AsCatalog.loadTable(BaseSessionCatalog.java:99)
at org.apache.iceberg.rest.RESTCatalog.loadTable(RESTCatalog.java:102)
at org.apache.iceberg.rest.CatalogHandlers.loadTable(CatalogHandlers.java:315)
at com.risingwave.connector.catalog.JniCatalogWrapper.loadTable(JniCatalogWrapper.java:49)
2025-04-07T10:14:21.330825945Z ERROR rw-standalone-meta risingwave_meta::rpc::ddl_controller: failed to create streaming job id=31 error=failed to validate sink: Iceberg error: Iceberg error: Unexpected => Failed to load iceberg table., source: Failed to load iceberg table: dev.product_order_counts: Java exception was thrown
2025-04-07T10:14:21.347701385Z WARN rw-standalone-meta risingwave_meta::rpc::ddl_controller: aborted streaming job id=31
2025-04-07T10:14:21.348085856Z ERROR rw-standalone-frontend handle_query{mode="simple query" session_id=0 sql=CREATE SINK product_order_sink FROM product_order_counts WITH (connector = 'iceberg', type = 'append-only', catalog.type = 'rest', catalog.uri = 'http://nessie:19120/api/', catalog.name = 'nessie', warehouse.path = 's3://warehouse/risingwave-data', s3.endpoint = 'http://minio:9000', s3.region = 'us-east-1', s3.access.key = [REDACTED], s3.secret.key = [REDACTED], database.name = 'dev', table.name = 'product_order_counts', force_append_only = true, s3.path.style.access = 'true')}: pgwire::pg_protocol: error when process message error=Failed to run the query: gRPC request to meta service (call /ddl_service.DdlService/CreateSink
) failed: Internal error: failed to validate sink: Iceberg error: Iceberg error: Unexpected => Failed to load iceberg table., source: Failed to load iceberg table: dev.product_order_counts: Java exception was thrown