mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
sqlstore
154
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
6b89892286 |
merge: upstream/main (preserve Hanzo brand, 494 commits)
# Conflicts: # .github/workflows/build-and-publish.yml # AGENTS.md # AGENTS.md~upstream_main # api/adminservice/v1/request_response.go-helpers.pb.go # api/adminservice/v1/request_response.pb.go # api/adminservice/v1/service.pb.go # api/adminservice/v1/service_grpc.pb.go # api/adminservicemock/v1/service_grpc.pb.mock.go # api/archiver/v1/message.pb.go # api/batch/v1/request_response.pb.go # api/checksum/v1/message.pb.go # api/deployment/v1/message.go-helpers.pb.go # api/deployment/v1/message.pb.go # api/enums/v1/replication.go-helpers.pb.go # api/enums/v1/replication.pb.go # api/enums/v1/task.go-helpers.pb.go # api/enums/v1/task.pb.go # api/errordetails/v1/message.go-helpers.pb.go # api/errordetails/v1/message.pb.go # api/historyservice/v1/request_response.go-helpers.pb.go # api/historyservice/v1/request_response.pb.go # api/historyservice/v1/service.pb.go # api/historyservice/v1/service_grpc.pb.go # api/historyservicemock/v1/service_grpc.pb.mock.go # api/matchingservice/v1/request_response.pb.go # api/matchingservice/v1/service.pb.go # api/persistence/v1/chasm.pb.go # api/persistence/v1/executions.go-helpers.pb.go # api/persistence/v1/executions.pb.go # api/persistence/v1/workflow_mutable_state.pb.go # api/replication/v1/message.pb.go # api/routing/v1/extension.pb.go # api/schedule/v1/message.pb.go # api/taskqueue/v1/message.go-helpers.pb.go # api/taskqueue/v1/message.pb.go # chasm/component.go # chasm/component_mock.go # chasm/context.go # chasm/context_mock.go # chasm/engine.go # chasm/engine_mock.go # chasm/field.go # chasm/field_test.go # chasm/lib/activity/activity.go # chasm/lib/activity/activity_tasks.go # chasm/lib/activity/activity_test.go # chasm/lib/activity/config.go # chasm/lib/activity/frontend.go # chasm/lib/activity/fx.go # chasm/lib/activity/gen/activitypb/v1/activity_state.pb.go # chasm/lib/activity/gen/activitypb/v1/request_response.go-helpers.pb.go # chasm/lib/activity/gen/activitypb/v1/request_response.pb.go # chasm/lib/activity/gen/activitypb/v1/service.pb.go # chasm/lib/activity/gen/activitypb/v1/service_client.pb.go # chasm/lib/activity/gen/activitypb/v1/service_grpc.pb.go # chasm/lib/activity/handler.go # chasm/lib/activity/library.go # chasm/lib/activity/proto/v1/activity_state.proto # chasm/lib/activity/proto/v1/request_response.proto # chasm/lib/activity/proto/v1/service.proto # chasm/lib/activity/proto/v1/tasks.proto # chasm/lib/activity/statemachine.go # chasm/lib/activity/statemachine_test.go # chasm/lib/activity/validator.go # chasm/lib/activity/validator_test.go # chasm/lib/buf.yaml # chasm/lib/callback/component.go # chasm/lib/callback/config.go # chasm/lib/callback/fx.go # chasm/lib/callback/invocable_internal.go # chasm/lib/callback/invocable_outbound.go # chasm/lib/callback/library.go # chasm/lib/callback/proto/v1/message.proto # chasm/lib/callback/proto/v1/tasks.proto # chasm/lib/callback/request.go # chasm/lib/callback/request_test.go # chasm/lib/callback/tasks.go # chasm/lib/callback/tasks_test.go # chasm/lib/nexusoperation/cancellation.go # chasm/lib/nexusoperation/cancellation_statemachine.go # chasm/lib/nexusoperation/config.go # chasm/lib/nexusoperation/fx.go # chasm/lib/nexusoperation/gen/nexusoperationpb/v1/operation.go-helpers.pb.go # chasm/lib/nexusoperation/gen/nexusoperationpb/v1/operation.pb.go # chasm/lib/nexusoperation/gen/nexusoperationpb/v1/tasks.go-helpers.pb.go # chasm/lib/nexusoperation/gen/nexusoperationpb/v1/tasks.pb.go # chasm/lib/nexusoperation/library.go # chasm/lib/nexusoperation/metrics.go # chasm/lib/nexusoperation/operation.go # chasm/lib/nexusoperation/operation_statemachine.go # chasm/lib/nexusoperation/proto/v1/operation.proto # chasm/lib/nexusoperation/proto/v1/tasks.proto # chasm/lib/scheduler/backfiller.go # chasm/lib/scheduler/backfiller_tasks.go # chasm/lib/scheduler/backfiller_tasks_test.go # chasm/lib/scheduler/config.go # chasm/lib/scheduler/export_test.go # chasm/lib/scheduler/fx.go # chasm/lib/scheduler/gen/schedulerpb/v1/message.go-helpers.pb.go # chasm/lib/scheduler/gen/schedulerpb/v1/message.pb.go # chasm/lib/scheduler/gen/schedulerpb/v1/request_response.go-helpers.pb.go # chasm/lib/scheduler/gen/schedulerpb/v1/request_response.pb.go # chasm/lib/scheduler/gen/schedulerpb/v1/service.pb.go # chasm/lib/scheduler/gen/schedulerpb/v1/service_client.pb.go # chasm/lib/scheduler/gen/schedulerpb/v1/service_grpc.pb.go # chasm/lib/scheduler/gen/schedulerpb/v1/tasks.go-helpers.pb.go # chasm/lib/scheduler/gen/schedulerpb/v1/tasks.pb.go # chasm/lib/scheduler/generator.go # chasm/lib/scheduler/generator_tasks.go # chasm/lib/scheduler/generator_tasks_test.go # chasm/lib/scheduler/handler.go # chasm/lib/scheduler/handler_test.go # chasm/lib/scheduler/helper_test.go # chasm/lib/scheduler/invoker.go # chasm/lib/scheduler/invoker_execute_task_test.go # chasm/lib/scheduler/invoker_process_buffer_task_test.go # chasm/lib/scheduler/invoker_tasks.go # chasm/lib/scheduler/library.go # chasm/lib/scheduler/migration/migration.go # chasm/lib/scheduler/migration/migration_test.go # chasm/lib/scheduler/proto/v1/message.proto # chasm/lib/scheduler/proto/v1/request_response.proto # chasm/lib/scheduler/proto/v1/service.proto # chasm/lib/scheduler/proto/v1/tasks.proto # chasm/lib/scheduler/scheduler.go # chasm/lib/scheduler/scheduler_idle_tasks_test.go # chasm/lib/scheduler/scheduler_tasks.go # chasm/lib/scheduler/scheduler_test.go # chasm/lib/scheduler/spec_processor.go # chasm/lib/tests/gen/testspb/v1/service.pb.go # chasm/lib/tests/handler.go # chasm/lib/tests/library.go # chasm/lib/tests/payload.go # chasm/lib/tests/proto/v1/message.proto # chasm/lib/tests/proto/v1/request_response.proto # chasm/lib/tests/proto/v1/service.proto # chasm/lib/tests/tasks.go # chasm/lib/workflow/fx.go # chasm/lib/workflow/library.go # chasm/lib/workflow/workflow.go # chasm/library_core.go # chasm/ms_pointer.go # chasm/nexus_operation_processor.go # chasm/node_backend_mock.go # chasm/ref.go # chasm/ref_test.go # chasm/registrable_component.go # chasm/registrable_task.go # chasm/registry.go # chasm/registry_test.go # chasm/search_attribute.go # chasm/search_attribute_test.go # chasm/statemachine.go # chasm/task.go # chasm/task_mock.go # chasm/test_component_test.go # chasm/test_library_test.go # chasm/test_task_test.go # chasm/test_var_test.go # chasm/tree.go # chasm/tree_test.go # chasm/visibility.go # chasm/visibility_manager.go # chasm/visibility_manager_mock.go # chasm/visibility_test.go # chasm/visibility_value.go # chasm/visibility_value_test.go # chasm/workflow.go # client/admin/client_gen.go # client/admin/metric_client.go # client/admin/metric_client_gen.go # client/admin/retryable_client_gen.go # client/frontend/client_gen.go # client/frontend/metric_client.go # client/frontend/metric_client_gen.go # client/frontend/retryable_client_gen.go # client/history/client_gen.go # client/history/metric_client.go # client/history/metric_client_gen.go # client/history/retryable_client_gen.go # client/matching/README.md # client/matching/client.go # client/matching/client_gen.go # client/matching/loadbalancer.go # client/matching/metric_client.go # client/matching/metric_client_gen.go # cmd/tools/genrpcwrappers/main.go # cmd/tools/getproto/files.go # cmd/tools/getproto/main.go # common/api/metadata.go # common/archiver/README.md # common/archiver/gcloud/connector/client.go # common/archiver/provider/provider.go # common/archiver/provider/provider_mock.go # common/archiver/s3store/history_archiver.go # common/archiver/s3store/history_archiver_test.go # common/archiver/s3store/mocks/generate.go # common/archiver/s3store/mocks/s3api.go # common/archiver/s3store/util.go # common/archiver/s3store/visibility_archiver.go # common/archiver/s3store/visibility_archiver_test.go # common/authorization/authorizer.go # common/authorization/claim_mapper.go # common/authorization/default_authorizer.go # common/authorization/default_jwt_claim_mapper.go # common/authorization/default_token_key_provider.go # common/authorization/interceptor.go # common/authorization/interceptor_test.go # common/authorization/roles.go # common/cluster/metadata.go # common/cluster/metadata_test.go # common/config/config.go # common/config/config_template_embedded.yaml # common/config/persistence.go # common/config/persistence_test.go # common/constants.go # common/contextutil/metadata.go # common/contextutil/metadata_test.go # common/dynamicconfig/constants.go # common/dynamicconfig/shared_constants.go # common/enums/defaults.go # common/headers/caller_info.go # common/headers/headers.go # common/headers/version_checker.go # common/log/tag/values.go # common/log/zap_logger.go # common/membership/ringpop/factory.go # common/membership/ringpop/monitor.go # common/membership/ringpop/service_resolver.go # common/membership/ringpop/test_cluster.go # common/metrics/config.go # common/metrics/metric_defs.go # common/metrics/tags.go # common/metrics/tally_metrics_handler.go # common/metrics/tally_metrics_handler_test.go # common/metrics/task_queues.go # common/namespace/namespace.go # common/namespace/nsregistry/registry.go # common/namespace/nsregistry/registry_test.go # common/namespace/nsregistry/registry_watch_test.go # common/namespace/nsreplication/replication_task_executor.go # common/namespace/nsreplication/replication_task_executor_test.go # common/namespace/nsreplication/transmission_task_handler.go # common/namespace/nsreplication/transmission_task_handler_test.go # common/namespace/registry.go # common/namespace/registry_mock.go # common/namespace/replication_resolver.go # common/namespace/replication_resolver_test.go # common/nexus/callback_token.go # common/nexus/endpoint_registry.go # common/nexus/endpoint_registry_test.go # common/nexus/failure.go # common/nexus/failure_test.go # common/nexus/link_converter.go # common/nexus/link_converter_test.go # common/nexus/nexustest/server.go # common/nexus/payload_serializer.go # common/nexus/payload_serializer_test.go # common/payload/payload.go # common/payload/payload_test.go # common/payloads/payloads.go # common/persistence/cassandra/matching_task_store_queue.go # common/persistence/cassandra/matching_task_store_user_data.go # common/persistence/cassandra/matching_task_store_v1.go # common/persistence/cassandra/matching_task_store_v2.go # common/persistence/cassandra/queue_v2_store.go # common/persistence/data_interfaces.go # common/persistence/faultinjection/cluster_metadata_store_gen.go # common/persistence/faultinjection/data_store_factory.go # common/persistence/faultinjection/execution_store_gen.go # common/persistence/faultinjection/fault_generator.go # common/persistence/faultinjection/gowrap_template # common/persistence/faultinjection/metadata_store_gen.go # common/persistence/faultinjection/method_fault_generator.go # common/persistence/faultinjection/nexus_endpoint_store_gen.go # common/persistence/faultinjection/queue_gen.go # common/persistence/faultinjection/queue_v2_gen.go # common/persistence/faultinjection/shard_store_gen.go # common/persistence/faultinjection/store_fault_generator.go # common/persistence/faultinjection/task_store_gen.go # common/persistence/persistence_interface.go # common/persistence/persistencetest/queues.go # common/persistence/persistencetest/queues_test.go # common/persistence/serialization/codec.go # common/persistence/serialization/codec_test.go # common/persistence/serialization/serializer.go # common/persistence/serialization/task_serializers.go # common/persistence/serialization/task_serializers_test.go # common/persistence/sql/sqlplugin/mysql/session/session.go # common/persistence/sql/sqlplugin/mysql/visibility.go # common/persistence/sql/sqlplugin/postgresql/driver/interface.go # common/persistence/sql/sqlplugin/postgresql/driver/pgx.go # common/persistence/sql/sqlplugin/postgresql/driver/pq.go # common/persistence/sql/sqlplugin/postgresql/plugin.go # common/persistence/sql/sqlplugin/postgresql/session/session.go # common/persistence/sql/sqlplugin/sqlite/driver.go # common/persistence/sql/sqlplugin/sqlite/plugin.go # common/persistence/task_manager.go # common/persistence/tests/postgresql_test.go # common/persistence/tests/postgresql_test_util.go # common/persistence/tests/util.go # common/persistence/tests/visibility_persistence_suite.go # common/persistence/visibility/chasm_visibility_manager.go # common/persistence/visibility/chasm_visibility_manager_test.go # common/persistence/visibility/manager/visibility_manager.go # common/persistence/visibility/manager/visibility_manager_mock.go # common/persistence/visibility/store/elasticsearch/client/aws.go # common/persistence/visibility/store/elasticsearch/query_interceptors.go # common/persistence/visibility/store/elasticsearch/query_interceptors_test.go # common/persistence/visibility/store/elasticsearch/visibility_store.go # common/persistence/visibility/store/elasticsearch/visibility_store_read_test.go # common/persistence/visibility/store/query/converter.go # common/persistence/visibility/store/query/converter_test.go # common/persistence/visibility/store/sql/query_converter_legacy.go # common/persistence/visibility/store/sql/query_converter_legacy_test.go # common/persistence/visibility/store/sql/visibility_store.go # common/persistence/visibility/store/util.go # common/persistence/visibility/store/visibility_store.go # common/persistence/visibility/store/visibility_store_mock.go # common/persistence/visibility/visibility_manager_dual.go # common/persistence/visibility/visibility_manager_impl.go # common/persistence/visibility/visibility_manager_rate_limited.go # common/persistence/visibility/visiblity_manager_metrics.go # common/primitives/task_queues.go # common/quotas/clocked_rate_limiter.go # common/quotas/dynamic_rate_limiter_impl.go # common/quotas/priority_rate_limiter_impl.go # common/quotas/rate_burst.go # common/resource/fx.go # common/rpc/encryption/fixedTLSConfigProvider.go # common/rpc/encryption/local_store_tls_provider.go # common/rpc/encryption/tls_config_test.go # common/rpc/interceptor/dc_redirection_policy.go # common/rpc/interceptor/health_check.go # common/rpc/interceptor/logtags/admin_service_server_gen.go # common/rpc/interceptor/logtags/history_service_server_gen.go # common/rpc/interceptor/logtags/workflow_service_server_gen.go # common/rpc/interceptor/namespace_handover.go # common/rpc/interceptor/namespace_rate_limit.go # common/rpc/interceptor/namespace_validator.go # common/rpc/interceptor/namespace_validator_test.go # common/rpc/interceptor/rate_limit.go # common/rpc/interceptor/redirection.go # common/rpc/interceptor/redirection_test.go # common/rpc/interceptor/request_error_handler.go # common/rpc/interceptor/routing_key_interceptor_test.go # common/rpc/interceptor/service_error_interceptor.go # common/rpc/interceptor/service_error_interceptor_test.go # common/rpc/rpc.go # common/rpc/test/http_test.go # common/rpc/test/rpc_localstore_tls_test.go # common/searchattribute/encode.go # common/searchattribute/encode_test.go # common/searchattribute/manager.go # common/searchattribute/mapper.go # common/searchattribute/mapper_test.go # common/searchattribute/name_type_map.go # common/searchattribute/name_type_map_test.go # common/searchattribute/sadefs/encode_value.go # common/searchattribute/sadefs/encode_value_test.go # common/searchattribute/sadefs/util.go # common/searchattribute/search_attirbute.go # common/searchattribute/stringify.go # common/searchattribute/stringify_test.go # common/searchattribute/system_provider.go # common/searchattribute/test_provider.go # common/searchattribute/validator.go # common/serviceerror/convert.go # common/tasks/interleaved_weighted_round_robin_test.go # common/testing/historyrequire/history_require.go # common/testing/mockapi/workflowservicemock/v1/service_grpc.pb.mock.go # common/testing/mocksdk/client_mock.go # common/testing/protorequire/require.go # common/testing/testhooks/hooks.go # common/testing/testhooks/test_impl.go # common/testing/testlogger/testlogger.go # common/testing/testvars/test_vars.go # common/tqid/task_queue_id.go # common/tqid/task_queue_id_test.go # common/tqid/task_queue_validator.go # common/util/util.go # common/util/wildcard.go # common/worker_versioning/version_membership_cache.go # common/worker_versioning/worker_versioning.go # common/worker_versioning/worker_versioning_test.go # components/callbacks/config.go # components/callbacks/config_test.go # components/callbacks/request.go # components/callbacks/request_test.go # components/nexusoperations/config.go # components/nexusoperations/executors_test.go # components/nexusoperations/fx.go # components/nexusoperations/workflow/commands.go # components/nexusoperations/workflow/commands_test.go # config/development-cluster-a.yaml # config/development-cluster-b.yaml # config/development-cluster-c.yaml # config/dynamicconfig/development-cass.yaml # config/dynamicconfig/development-sql.yaml # config/dynamicconfig/development-xdc.yaml # develop/docker-compose/docker-compose.yml # develop/docker-compose/grafana/provisioning/tempo/tempo.yaml # develop/github/docker-compose.yml # docker/docker-bake.hcl # docker/targets/admin-tools.Dockerfile # docker/targets/server.Dockerfile # docs/Makefile # docs/_assets/matching-context.d2 # docs/_assets/retries.d2 # docs/architecture/chasm.md # docs/architecture/nexus.md # docs/development/macos/cassandra.md # docs/development/testing.md # proto/internal/buf.yaml # proto/internal/temporal/server/api/adminservice/v1/request_response.proto # proto/internal/temporal/server/api/adminservice/v1/service.proto # proto/internal/temporal/server/api/archiver/v1/message.proto # proto/internal/temporal/server/api/batch/v1/request_response.proto # proto/internal/temporal/server/api/checksum/v1/message.proto # proto/internal/temporal/server/api/cli/v1/message.proto # proto/internal/temporal/server/api/clock/v1/message.proto # proto/internal/temporal/server/api/cluster/v1/message.proto # proto/internal/temporal/server/api/common/v1/api_category.proto # proto/internal/temporal/server/api/common/v1/dlq.proto # proto/internal/temporal/server/api/deployment/v1/message.proto # proto/internal/temporal/server/api/enums/v1/cluster.proto # proto/internal/temporal/server/api/enums/v1/common.proto # proto/internal/temporal/server/api/enums/v1/fairness_state.proto # proto/internal/temporal/server/api/enums/v1/nexus.proto # proto/internal/temporal/server/api/enums/v1/predicate.proto # proto/internal/temporal/server/api/enums/v1/replication.proto # proto/internal/temporal/server/api/enums/v1/task.proto # proto/internal/temporal/server/api/enums/v1/workflow.proto # proto/internal/temporal/server/api/enums/v1/workflow_task_type.proto # proto/internal/temporal/server/api/errordetails/v1/message.proto # proto/internal/temporal/server/api/health/v1/message.proto # proto/internal/temporal/server/api/history/v1/message.proto # proto/internal/temporal/server/api/historyservice/v1/request_response.proto # proto/internal/temporal/server/api/historyservice/v1/service.proto # proto/internal/temporal/server/api/matchingservice/v1/request_response.proto # proto/internal/temporal/server/api/matchingservice/v1/service.proto # proto/internal/temporal/server/api/metrics/v1/message.proto # proto/internal/temporal/server/api/namespace/v1/message.proto # proto/internal/temporal/server/api/persistence/v1/chasm.proto # proto/internal/temporal/server/api/persistence/v1/chasm_visibility.proto # proto/internal/temporal/server/api/persistence/v1/cluster_metadata.proto # proto/internal/temporal/server/api/persistence/v1/executions.proto # proto/internal/temporal/server/api/persistence/v1/history_tree.proto # proto/internal/temporal/server/api/persistence/v1/hsm.proto # proto/internal/temporal/server/api/persistence/v1/namespaces.proto # proto/internal/temporal/server/api/persistence/v1/nexus.proto # proto/internal/temporal/server/api/persistence/v1/predicates.proto # proto/internal/temporal/server/api/persistence/v1/queue_metadata.proto # proto/internal/temporal/server/api/persistence/v1/queues.proto # proto/internal/temporal/server/api/persistence/v1/task_queues.proto # proto/internal/temporal/server/api/persistence/v1/tasks.proto # proto/internal/temporal/server/api/persistence/v1/update.proto # proto/internal/temporal/server/api/persistence/v1/workflow_mutable_state.proto # proto/internal/temporal/server/api/replication/v1/message.proto # proto/internal/temporal/server/api/routing/v1/extension.proto # proto/internal/temporal/server/api/schedule/v1/message.proto # proto/internal/temporal/server/api/taskqueue/v1/message.proto # proto/internal/temporal/server/api/testservice/v1/request_response.proto # proto/internal/temporal/server/api/testservice/v1/service.proto # proto/internal/temporal/server/api/token/v1/message.proto # proto/internal/temporal/server/api/workflow/v1/message.proto # service/frontend/admin_handler.go # service/frontend/admin_handler_test.go # service/frontend/configs/quotas.go # service/frontend/configs/quotas_test.go # service/frontend/errors.go # service/frontend/fx.go # service/frontend/fx_test.go # service/frontend/health_check_test.go # service/frontend/namespace_handler.go # service/frontend/namespace_handler_test.go # service/frontend/nexus_completion_http_handler.go # service/frontend/nexus_handler.go # service/frontend/nexus_handler_test.go # service/frontend/nexus_operation_http_handler.go # service/frontend/nexus_operation_http_handler_test.go # service/frontend/operator_handler.go # service/frontend/operator_handler_test.go # service/frontend/service.go # service/frontend/workflow_handler.go # service/frontend/workflow_handler_second_test.go # service/frontend/workflow_handler_test.go # service/fx.go # service/history/api/command_attr_validator.go # service/history/api/command_attr_validator_test.go # service/history/api/create_workflow_util.go # service/history/api/describeworkflow/api.go # service/history/api/get_workflow_util.go # service/history/api/multioperation/api.go # service/history/api/namespace.go # service/history/api/pauseactivity/api.go # service/history/api/pollupdate/api_test.go # service/history/api/queryworkflow/api.go # service/history/api/recordactivitytaskstarted/api.go # service/history/api/recordactivitytaskstarted/api_test.go # service/history/api/recordworkflowtaskstarted/api.go # service/history/api/removesignalmutablestate/api.go # service/history/api/resetactivity/api.go # service/history/api/resetworkflow/api.go # service/history/api/respondactivitytaskcanceled/api.go # service/history/api/respondactivitytaskcompleted/api.go # service/history/api/respondactivitytaskfailed/api.go # service/history/api/respondactivitytaskfailed/api_test.go # service/history/api/respondworkflowtaskcompleted/api.go # service/history/api/respondworkflowtaskcompleted/api_test.go # service/history/api/respondworkflowtaskcompleted/workflow_task_completed_handler.go # service/history/api/respondworkflowtaskcompleted/workflow_task_completed_handler_test.go # service/history/api/respondworkflowtaskfailed/api.go # service/history/api/signalwithstartworkflow/api.go # service/history/api/signalwithstartworkflow/convert.go # service/history/api/signalwithstartworkflow/signal_with_start_workflow.go # service/history/api/signalwithstartworkflow/signal_with_start_workflow_test.go # service/history/api/signalworkflow/api.go # service/history/api/startworkflow/api.go # service/history/api/unpauseactivity/api.go # service/history/api/updateactivityoptions/api.go # service/history/api/updateactivityoptions/api_test.go # service/history/api/updateworkflow/api.go # service/history/api/updateworkflowoptions/api.go # service/history/api/updateworkflowoptions/api_test.go # service/history/api/verifychildworkflowcompletionrecorded/api.go # service/history/api/verifyfirstworkflowtaskscheduled/api_test.go # service/history/api/worker_versioning_util.go # service/history/api/workflow_id_dedup.go # service/history/api/workflow_id_dedup_test.go # service/history/archival_queue_factory_test.go # service/history/chasm_engine.go # service/history/chasm_engine_test.go # service/history/chasm_task_util.go # service/history/configs/config.go # service/history/configs/quotas.go # service/history/consts/const.go # service/history/deletemanager/delete_manager.go # service/history/deletemanager/delete_manager_test.go # service/history/fx.go # service/history/handler.go # service/history/history_engine.go # service/history/history_engine2_test.go # service/history/history_engine_factory.go # service/history/history_engine_test.go # service/history/history_test.go # service/history/historybuilder/event_factory.go # service/history/historybuilder/event_store.go # service/history/historybuilder/history_builder.go # service/history/historybuilder/history_builder_categorization_test.go # service/history/historybuilder/history_builder_test.go # service/history/interfaces/chasm_tree.go # service/history/interfaces/chasm_tree_mock.go # service/history/interfaces/mutable_state.go # service/history/interfaces/mutable_state_mock.go # service/history/interfaces/shard_context.go # service/history/interfaces/shard_context_mock.go # service/history/interfaces/workflow_context.go # service/history/interfaces/workflow_context_mock.go # service/history/ndc/events_reapplier_test.go # service/history/ndc/transaction_manager.go # service/history/ndc/transaction_manager_existing_workflow.go # service/history/ndc/transaction_manager_existing_workflow_test.go # service/history/ndc/transaction_manager_new_workflow.go # service/history/ndc/transaction_manager_new_workflow_test.go # service/history/ndc/workflow.go # service/history/ndc/workflow_mock.go # service/history/ndc/workflow_resetter.go # service/history/ndc/workflow_resetter_test.go # service/history/ndc/workflow_state_replicator_test.go # service/history/ndc_standby_task_util.go # service/history/ndc_task_util.go # service/history/outbound_queue_active_task_executor.go # service/history/outbound_queue_active_task_executor_test.go # service/history/outbound_queue_factory.go # service/history/outbound_queue_standby_task_executor.go # service/history/outbound_queue_standby_task_executor_test.go # service/history/queue_factory_base.go # service/history/queue_factory_base_test.go # service/history/queues/active_standby_executor.go # service/history/queues/active_standby_executor_test.go # service/history/queues/dlq_writer.go # service/history/queues/dlq_writer_test.go # service/history/queues/executable.go # service/history/queues/executable_factory.go # service/history/queues/executable_mock.go # service/history/queues/executable_test.go # service/history/queues/grouper.go # service/history/queues/metrics.go # service/history/queues/metrics_test.go # service/history/queues/priority_assigner.go # service/history/queues/queue_base.go # service/history/queues/queue_immediate.go # service/history/queues/queue_immediate_test.go # service/history/queues/reader.go # service/history/queues/scheduler.go # service/history/queues/speculative_workflow_task_timeout_queue.go # service/history/replication/ack_manager.go # service/history/replication/dlq_writer.go # service/history/replication/dlq_writer_test.go # service/history/replication/executable_sync_versioned_transition_task.go # service/history/replication/executable_task.go # service/history/replication/executable_task_converter.go # service/history/replication/executable_task_mock.go # service/history/replication/executable_task_tool_box.go # service/history/replication/executable_verify_versioned_transition_task.go # service/history/replication/fx.go # service/history/replication/metrics.go # service/history/replication/progress_cache.go # service/history/replication/progress_cache_test.go # service/history/replication/raw_task_converter.go # service/history/replication/raw_task_converter_test.go # service/history/replication/stream_receiver.go # service/history/replication/stream_receiver_monitor.go # service/history/replication/stream_receiver_monitor_test.go # service/history/replication/stream_sender.go # service/history/replication/task_processor.go # service/history/replication/task_processor_manager.go # service/history/replication/task_processor_manager_test.go # service/history/replication/task_processor_test.go # service/history/service.go # service/history/shard/context_factory.go # service/history/shard/context_impl.go # service/history/shard/context_test.go # service/history/shard/context_testutil.go # service/history/shard/controller_test.go # service/history/shard/fx.go # service/history/tasks/chasm_task.go # service/history/tasks/delete_workflow_execution_stage.go # service/history/tasks/predicates.go # service/history/tasks/state_machine_task.go # service/history/tasks/task.go # service/history/tasks/task_mock.go # service/history/tasks/utils.go # service/history/timer_queue_active_task_executor.go # service/history/timer_queue_active_task_executor_test.go # service/history/timer_queue_standby_task_executor.go # service/history/timer_queue_standby_task_executor_test.go # service/history/timer_queue_task_executor_base.go # service/history/timer_queue_task_executor_base_test.go # service/history/transfer_queue_active_task_executor.go # service/history/transfer_queue_active_task_executor_test.go # service/history/transfer_queue_factory.go # service/history/transfer_queue_standby_task_executor.go # service/history/transfer_queue_standby_task_executor_test.go # service/history/visibility_queue_factory.go # service/history/visibility_queue_task_executor.go # service/history/visibility_queue_task_executor_test.go # service/history/worker_versioning_util.go # service/history/workflow/activity.go # service/history/workflow/cache/cache.go # service/history/workflow/command_handler.go # service/history/workflow/context.go # service/history/workflow/fx.go # service/history/workflow/metrics.go # service/history/workflow/metrics_test.go # service/history/workflow/mutable_state_impl.go # service/history/workflow/mutable_state_impl_restart_activity_test.go # service/history/workflow/mutable_state_impl_test.go # service/history/workflow/mutable_state_rebuilder.go # service/history/workflow/mutable_state_rebuilder_test.go # service/history/workflow/noop_chasm_tree.go # service/history/workflow/retry.go # service/history/workflow/task_generator.go # service/history/workflow/task_generator_mock.go # service/history/workflow/task_generator_provider.go # service/history/workflow/task_generator_test.go # service/history/workflow/task_refresher.go # service/history/workflow/timer_sequence.go # service/history/workflow/update/abort_reason.go # service/history/workflow/update/errors_failures.go # service/history/workflow/update/export_test.go # service/history/workflow/update/store.go # service/history/workflow/update/store_mock_test.go # service/history/workflow/update/update.go # service/history/workflow/update/update_test.go # service/history/workflow/update/validation.go # service/history/workflow/util.go # service/history/workflow/workflow_task_state_machine.go # service/history/workflow/workflow_test/mutable_state_impl_test.go # service/matching/backlog_manager_test.go # service/matching/config.go # service/matching/configs/quotas.go # service/matching/counter/cmsketch.go # service/matching/counter/cmsketch_test.go # service/matching/counter/hybrid.go # service/matching/db.go # service/matching/fair_backlog_manager.go # service/matching/fair_task_reader.go # service/matching/forwarder.go # service/matching/fx.go # service/matching/handler.go # service/matching/handler_test.go # service/matching/matcher.go # service/matching/matcher_data.go # service/matching/matcher_data_test.go # service/matching/matching_engine.go # service/matching/matching_engine_test.go # service/matching/physical_task_queue_key.go # service/matching/physical_task_queue_key_test.go # service/matching/physical_task_queue_manager.go # service/matching/physical_task_queue_manager_interface.go # service/matching/physical_task_queue_manager_mock.go # service/matching/physical_task_queue_manager_test.go # service/matching/pri_backlog_manager.go # service/matching/pri_forwarder.go # service/matching/pri_matcher.go # service/matching/pri_matcher_test.go # service/matching/pri_task_reader.go # service/matching/task.go # service/matching/task_queue_partition_manager.go # service/matching/task_queue_partition_manager_test.go # service/matching/task_tracker.go # service/matching/task_tracker_test.go # service/matching/task_validation.go # service/matching/user_data_manager.go # service/matching/user_data_manager_test.go # service/matching/workers/registry.go # service/matching/workers/registry_impl.go # service/matching/workers/registry_impl_test.go # service/matching/workers/registry_test.go # service/matching/workers/worker_query_engine.go # service/matching/workers/worker_query_engine_test.go # service/worker/batcher/activities.go # service/worker/batcher/activities_test.go # service/worker/deletenamespace/deleteexecutions/activities.go # service/worker/deletenamespace/deleteexecutions/workflow_test.go # service/worker/deletenamespace/fx.go # service/worker/dummy/workflow.go # service/worker/fx.go # service/worker/migration/activities.go # service/worker/migration/activities_test.go # service/worker/migration/force_replication_workflow.go # service/worker/migration/force_replication_workflow_test.go # service/worker/migration/fx.go # service/worker/migration/handover_workflow.go # service/worker/migration/handover_workflow_test.go # service/worker/scheduler/activities.go # service/worker/scheduler/activities_test.go # service/worker/scheduler/workflow.go # service/worker/workerdeployment/activities.go # service/worker/workerdeployment/client.go # service/worker/workerdeployment/fx.go # service/worker/workerdeployment/util.go # service/worker/workerdeployment/util_test.go # service/worker/workerdeployment/version_activities.go # service/worker/workerdeployment/version_workflow.go # service/worker/workerdeployment/version_workflow_test.go # service/worker/workerdeployment/workflow.go # service/worker/workerdeployment/workflow_test.go # temporal/fx.go # temporal/server_option.go # temporal/server_options.go # tests/acquire_shard_test.go # tests/activity_api_batch_reset_test.go # tests/activity_api_batch_unpause_test.go # tests/activity_api_batch_update_options_test.go # tests/activity_api_pause_test.go # tests/activity_api_reset_test.go # tests/activity_api_rules_test.go # tests/activity_api_update_test.go # tests/activity_test.go # tests/add_tasks_test.go # tests/admin_test.go # tests/advanced_visibility_test.go # tests/archival_test.go # tests/callbacks_migration_test.go # tests/callbacks_test.go # tests/cancel_workflow_test.go # tests/chasm_test.go # tests/child_workflow_test.go # tests/client_data_converter_test.go # tests/client_misc_test.go # tests/continue_as_new_test.go # tests/describe_test.go # tests/dlq_test.go # tests/links_test.go # tests/max_buffered_event_test.go # tests/namespace_interceptor_test.go # tests/namespace_test.go # tests/nexus_api_test.go # tests/nexus_api_validation_test.go # tests/nexus_endpoint_test.go # tests/nexus_test_base.go # tests/nexus_workflow_test.go # tests/pause_workflow_execution_test.go # tests/premature_eos_test.go # tests/priority_fairness_test.go # tests/purge_dlq_tasks_api_test.go # tests/query_workflow_test.go # tests/relay_task_test.go # tests/schedule_migration_test.go # tests/schedule_test.go # tests/signal_workflow_test.go # tests/sizelimit_test.go # tests/stickytq_test.go # tests/task_queue_stats_test.go # tests/task_queue_test.go # tests/testcore/context.go # tests/testcore/dynamic_config_overrides.go # tests/testcore/functional_test_base.go # tests/testcore/matching_behavior.go # tests/testcore/onebox.go # tests/testcore/shard_salt.txt # tests/testcore/test_cluster.go # tests/testcore/test_cluster_pool.go # tests/testcore/test_env.go # tests/transient_task_test.go # tests/update_workflow_sdk_test.go # tests/update_workflow_test.go # tests/user_metadata_test.go # tests/user_timers_test.go # tests/versioning_3_test.go # tests/versioning_test.go # tests/worker_deployment_test.go # tests/worker_deployment_version_test.go # tests/workflow_alias_search_attribute_test.go # tests/workflow_buffered_events_test.go # tests/workflow_delete_execution_test.go # tests/workflow_failures_test.go # tests/workflow_memo_test.go # tests/workflow_task_reported_problems_test.go # tests/workflow_test.go # tests/workflow_timer_test.go # tests/workflow_visibility_test.go # tests/xdc/base.go # tests/xdc/chasm_test.go # tests/xdc/failover_test.go # tests/xdc/history_replication_dlq_test.go # tests/xdc/history_replication_signals_and_updates_test.go # tests/xdc/nexus_request_forwarding_test.go # tests/xdc/nexus_state_replication_test.go # tests/xdc/stream_based_replication_test.go # tests/xdc/visibility_test.go # tools/elasticsearch/handler.go # tools/elasticsearch/main.go # tools/elasticsearch/tasks.go # tools/flakereport/flakereport.go # tools/flakereport/github.go # tools/flakereport/slack.go # tools/flakereport/types.go # tools/flakereport/writer.go # tools/tdbg/chasm_registry.go # tools/tdbg/commands.go # tools/tdbg/flags.go # tools/tdbg/task_queue_commands.go # tools/tdbg/task_queue_commands_test.go # tools/tdbg/tdbg_commands.go # tools/tdbg/util.go # tools/testrunner/junit.go # tools/testrunner/junit_test.go # tools/testrunner/log.go # tools/testrunner/log_test.go # tools/testrunner/testdata/junit-alerts-output.xml # tools/testrunner/testdata/junit-crash-output.xml # tools/testrunner/testdata/junit-empty.xml # tools/testrunner/testdata/junit-timeout-output.xml # tools/testrunner/testrunner.go # tools/testrunner/testrunner_test.go |
||
|
|
8f279a783a |
chore: drop dead config + ship-shape Dockerfile/Makefile/k8s
- rm config/ (cassandra/mysql/postgres/dual-cluster fork yamls)
- rm develop/ (fork docker-compose / grafana / temporalio-dashboards submodule)
- rm docs/{admin,architecture,development,_assets,ui-screenshots,Makefile,README.md,worker-versioning.md}
(kept docs/red-review-zap-sdk.md — pkg/sdk port review)
- rm k8s/{configmap.yaml,init-db.yaml,kms-secrets.yaml} (dynamic config + Postgres init for fork)
- rm .gitmodules (was: temporalio-dashboards Grafana, gone)
- Dockerfile: 27 lines, no CGO, no SQLite driver, exposes :9999 (ZAP) + :7243 (HTTP)
- Makefile: 30 lines, just build/ui/run/vet/test/tidy/clean
- k8s/deployment.yaml: single Deployment, single Service, single Ingress, /healthz probes
- k8s/kustomization.yaml: 2 resources (deployment + ingress)
Binary: 6.65 MB (-trimpath -ldflags="-s -w"), RSS 13 MB, boots <1s, all probes 200.
|
||
|
|
583114db7f |
Update Graphana Tempo config for latest version (#10055)
## What changed? Updates the Graphana Tempo configuration used for the service when running locally. (Simply copying a more recent version of the single-binary setup.) Fixes #10053. ## Why? Previously, the Tempo container would fail on startup. Preventing any collection of OTel traces. It appeared to stem from breaking changes in the Tempo service itself, as it modified the schema of its configuration file. I'll admit I am out of my depth here. But some of the field changes are called out in their upgrade guide here: https://grafana.com/docs/tempo/latest/set-up-for-tracing/setup-tempo/upgrade/ ## How did you test it? - [x] built - [x] run locally and tested manually - [ ] ~covered by existing tests~ - NA? - [ ] ~added new unit test(s)~ - NA? - [ ] ~added new functional test(s)~ - NA? I ran the https://github.com/temporalio/samples-go/tree/main/opentelemetry sample, and within the Graphana UI on http://localhost:3000/ I saw data showing up. <img width="1244" height="620" alt="image" src="https://github.com/user-attachments/assets/320642a8-1b91-4428-bb6d-1f2b090016b8" /> |
||
|
|
e9cdb38cb2 | chore: sync local changes | ||
|
|
238496cce9 |
chore: upgrade dev/CI Cassandra from 3.11 to 5.0 (#9482)
Cassandra 3.11 reached EOL in July 2023. Upgrade both development and CI compose files to Cassandra 5.0 for current driver compatibility and feature parity with ScyllaDB. Changes: - develop/docker-compose: cassandra:3.11 -> cassandra:5.0 - develop/github CI compose: cassandra:3.11 -> cassandra:5.0, increase healthcheck retries from 30 to 60 (5.0 is slower to start) - macOS docs: update to 5.0, remove stale ARM JNA workaround that is no longer needed ## What changed? Big change, but: 1. Cassandra 3.11 is End-of-Life. 2. Allowed me separately to change the Golang CQL driver to ScyllaDB's, which doesn't support that EOL Cassandra anymore (my fault too, I removed that support I think). ## Why? If I wanted (and I do) to switch to ScyllaDB's GoCQL driver, I needed to perform this change. ## How did you test it? - [x] built - [x] run locally and tested manually - [x] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s) ## Potential risks I also did not see any performance regression! |
||
|
|
b7676548e7 |
Docker compose healthchecks (#9335)
## What changed? Add health checks for docker compose dependencies. ## Why? Seeing connection timeouts for cass_es8 [[example](https://github.com/temporalio/temporal/actions/runs/22005015596/job/63897748984?pr=9292)] that are failing tests. ## How did you test it? - [ ] built - [ ] run locally and tested manually - [x] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s) ## Potential risks Might make tests a little bit slower due to extra wait time. |
||
|
|
11d3c4f07c |
ARM runners for all database setups (#9312)
## What changed? Use only ARM runners for running tests. ## Why? They are faster and cheaper and are available faster. <img width="390" height="249" alt="Screenshot 2026-02-12 at 8 02 58 PM" src="https://github.com/user-attachments/assets/0de5865e-971a-4d7c-8dd1-a57860412f12" /> ## How did you test it? - [ ] built - [ ] run locally and tested manually - [x] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s) Tested explicitly on all databases. |
||
|
|
2a3ae6ae55 |
Print goroutine profile in CI (#9162)
## What changed? 1. Extended existing Go test memory monitor to include goroutine profile. 2. Changed snapshot to be of moment with _highest_ memory usage (instead of latest). 3. Unified report into a single one (both printing and disk snapshot). 4. (bonus) added monitor to unit and integration test jobs. ## Why? Inspect where high goroutine count comes from. ## How did you test it? Example: https://github.com/temporalio/temporal/actions/runs/21695994550/job/62566409323?pr=9162#step:10:17 |
||
|
|
a008a9c39d |
Standardize YAML formatting (#9142)
## What changed? Adds and integrates `yamlfmt` (Go-based, by Google). Anything not annotated was changed by `yamlfmt`. ## Why? Consistent YAML formatting. Reduce unrelated diffs caused by formatting in PRs. ## How did you test it? - [ ] built - [ ] run locally and tested manually - [x] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s) |
||
|
|
7638f514f0 |
Parallel Workflow Update Tests (#8811)
## What changed? Migrated `TestWorkflowUpdateSuite` away from testify's `Suite`; enabling parallel test execution. **How it works** - a test invokes `testcore.NewEnv(t)` to obtain a new `TestEnv` - `TestEnv` sets `t.Parallel()` (_intentionally not giving a way to opt out!_) - `TestEnv` obtains a test cluster from `clusterPool` (_or blocks if all are in-use right now_) - env var `TEMPORAL_TEST_SHARED_CLUSTERS` controls size of the pool - if a test relies on APIs like InjectHook, a dedicated cluster is used to prevent overlap - env var `TEMPORAL_TEST_DEDICATED_CLUSTERS` controls number of dedicated clusters **testify suites** Existing test suites are limited by the same dedicated cluster pool to prevent creating too many clusters. **Database connections** SQLite setup for TestEnv-based func tests (ie only TestWorkflowUpdateSuite so far) has been changed to a file-based approach since that supports much better concurrency due to its WAL that an in-memory SQLite database does not support. Connection limits for other databases were also raised due to connection errors. **Planned follow-ups** - Migrating the other testify suites should be fairly straight-forward with the use of AI agents. - Reduce need for dedicated clusters by leveraging isolated namespace-per-test more. - Eliminate all `time.Sleep`s. - Tweak test cluster pool behavior. ## Why? 1. **Local speedup**: benchmarks show a ~50% speed increase (36.1s → 16.6s) for `TestWorkflowUpdateSuite`. 5. **Namespace isolation**: every test runs in its own namespace. This greatly reduces the risk of (accidental) collisions and also reduces the need to craft unique identifiers such as for task queues and workflow IDs. 6. **Deprecate testify suites**: Long-term strategy to remove use of testify suites in functional tests (one reason being their inability to run tests within a suite in parallel). ## How did you test it? - [ ] built - [ ] run locally and tested manually - [x] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s) ## Potential Issues 1. Logs become less useful since there is more interleaving of tests. 2. Higher resource consumption: it requires more concurrent connections to databases and shows higher memory consumption (see 3 and 4). This could cause some short-term instability on CI. Note that some other PRs were merged to add mechanics for monitoring memory usage much better; which will help here. 4. Until all functional tests are converted, there is an imbalance in test cluster creation: migrated tests use the shared pool while current tests create one cluster each. Especially given the fact that some tests don't allow for test cluster sharing as they use non-parallelizable actions such as `InjectHook` or dynamic config overrides. With some more effort the number of these can be reduced. 7. Setup of test clusters was designed around the idea of short-lived clusters, one per suite. But when re-using them for longer, some of the assumptions don't hold anymore and increase memory usage. There's a band aid in place to limit how often a test cluster can be used before it's torn down. A long-term solution requires some design changes to how test clusters are started/used/torn down. 8. If there are certain cross-namespace issues or bugs that affect multiple tests, it might be harder to identify the root cause now. However; the existing test re-runs should at least mitigate these short-term. --------- Co-authored-by: Dan Davison <[email protected]> |
||
|
|
a82d8066b6 |
Capture memory monitor report before OOM crash (#9079)
## What changed? Follow-up to https://github.com/temporalio/temporal/pull/9027 1. Print memory stats to both file and stdout (new!) 2. Print Go heap report once a memory threshold is reached (ie close to OOM kill) 3. Add `alloc_objects` to Go heap report See [example](https://github.com/temporalio/temporal/actions/runs/21153910359/job/60835302610?pr=9079#step:9:89): <img width="1328" height="1197" alt="Screenshot 2026-01-19 at 4 23 28 PM" src="https://github.com/user-attachments/assets/fe910197-d813-4f63-8907-797c5f11bc90" /> (note that Go test output is buffered so they all appear mostly sequentially) ## Why? Gain ability to capture memory usage and Go heap report **before an OOM kill**. ## How did you test it? - [ ] built - [ ] run locally and tested manually - [x] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s) |
||
|
|
ca5513592e |
Memory watcher for functional tests (#9027)
## What changed? Added script to take memory report snapshots during test execution and print report after test success/failure. ## Why? Gain insights into memory usage; especially when job is OOM killed. ## How did you test it? see example: https://github.com/temporalio/temporal/actions/runs/21011468266/job/60407413329?pr=9027#step:9:15 <details><summary>Example</summary> <p> ``` Memory snapshot at 2026-01-14 22:16:53 Time Used(%) Used(MB) Goroutines Top Processes --------------------------------------------------------------- 22:06:03 16% 5347 ? java (2468MB), java (1322MB) 22:06:33 20% 6460 ? java (2450MB), java (1322MB), compile (376MB) 22:07:03 16% 5418 ? java (2430MB), java (1323MB) 22:07:33 16% 5401 2781 java (2531MB), java (1333MB) 22:08:06 17% 5702 5861 java (2493MB), java (1339MB), xdc.test (649MB) 22:08:36 18% 6034 5971 java (2528MB), java (1346MB), xdc.test (936MB) 22:09:07 20% 6455 6149 java (2539MB), java (1350MB), xdc.test (1314MB) 22:09:38 26% 8416 45668 xdc.test (3281MB), java (2535MB), java (1375MB) 22:10:10 33% 10596 43034 xdc.test (5657MB), java (2560MB), java (1405MB) 22:10:42 39% 12806 39209 xdc.test (7449MB), java (2551MB), java (1413MB) 22:11:13 42% 13580 33372 xdc.test (8166MB), java (2556MB), java (1413MB) 22:11:44 44% 14196 11067 xdc.test (8168MB), java (2548MB), java (1413MB) 22:12:15 44% 14171 11342 xdc.test (8653MB), java (2555MB), java (1415MB) 22:12:46 44% 14233 11724 xdc.test (8682MB), java (2546MB), java (1421MB) 22:13:17 45% 14536 10186 xdc.test (8858MB), java (2556MB), java (1427MB) 22:13:48 45% 14648 10392 xdc.test (8961MB), java (2555MB), java (1427MB) 22:14:19 45% 14710 10935 xdc.test (9027MB), java (2552MB), java (1428MB) 22:14:49 45% 14716 11060 xdc.test (9020MB), java (2557MB), java (1428MB) 22:15:20 45% 14702 11312 xdc.test (8925MB), java (2557MB), java (1428MB) 22:15:51 46% 14835 11571 xdc.test (9088MB), java (2545MB), java (1429MB) 22:16:22 46% 14839 11964 xdc.test (9082MB), java (2556MB), java (1429MB) 22:16:53 18% 5911 5792 java (2547MB), java (1434MB), xdc.test (628MB) --- Top Processes --- PID %MEM RSS COMMAND 2550 7.9 2608560 java 2679 4.4 1468908 java 23586 1.9 643644 xdc.test 1810 0.4 155452 provjobd 2094 0.4 142716 Runner.Worker 2079 0.3 113336 Runner.Listener 23517 0.3 99448 go 1161 0.2 78640 dockerd 833 0.1 51476 php-fpm8.3 910 0.1 51092 containerd 270 0.1 43536 multipathd 1417 0.1 36216 python3 865 0.1 35444 python3 3362 0.0 22220 go 1184 0.0 21448 php-fpm8.3 1185 0.0 21448 php-fpm8.3 831 0.0 20332 networkd-dispat 1987 0.0 19000 hca 203 0.0 16660 systemd-journal --- Memory Summary --- total used free shared buff/cache available Mem: 32098 5914 17968 51 8738 26183 Swap: 0 0 0 --- Go Heap Profile --- File: xdc.test Build ID: 2f2150795a26dac09836852e7ea9c9cf9f89fc14 Type: inuse_space Time: 2026-01-14 22:16:53 UTC Showing nodes accounting for 37251.65kB, 100% of 37251.65kB total flat flat% sum% cum cum% 6002.03kB 16.11% 16.11% 6002.03kB 16.11% go.temporal.io/sdk/internal.newLocalActivityTunnel (inline) 2565kB 6.89% 23.00% 2565kB 6.89% runtime.allocm 2564.16kB 6.88% 29.88% 3635.80kB 9.76% google.golang.org/protobuf/internal/filedesc.(*Message).unmarshalFull 2384.64kB 6.40% 36.28% 2384.64kB 6.40% go.temporal.io/server/common/aggregate.NewMovingWindowAvgImpl (inline) 2048.35kB 5.50% 41.78% 2048.35kB 5.50% github.com/aws/aws-sdk-go/aws/endpoints.init 1537.50kB 4.13% 45.91% 1537.50kB 4.13% go.uber.org/zap/internal/bufferpool.init.NewPool.func1 1536.66kB 4.13% 50.03% 1536.66kB 4.13% runtime.malg 1072.75kB 2.88% 52.91% 1072.75kB 2.88% go.temporal.io/sdk/internal.newBaseWorker 1071.64kB 2.88% 55.79% 1071.64kB 2.88% google.golang.org/protobuf/internal/strs.(*Builder).grow (inline) 1045.40kB 2.81% 58.60% 1045.40kB 2.81% github.com/gocql/gocql.(*Session).scanColumnMetadataSystem 1024.11kB 2.75% 61.35% 1024.11kB 2.75% time.newTimer 1024.09kB 2.75% 64.09% 1024.09kB 2.75% go.temporal.io/server/common/tasks.(*SequentialScheduler[go.shape.interface { Abort(); Ack(); Cancel(); Execute() error; HandleErr(error) error; IsRetryableError(error) bool; MarkPoisonPill() error; Nack(error); QueueID() interface {}; ReplicationTask() *go.temporal.io/server/api/replication/v1.ReplicationTask; Reschedule(); RetryPolicy() go.temporal.io/server/common/backoff.RetryPolicy; SourceClusterName() string; State() go.temporal.io/server/common/tasks.State; TaskCreationTime() time.Time; TaskID() int64 }]).pollTaskQueue 532.26kB 1.43% 65.52% 532.26kB 1.43% google.golang.org/protobuf/reflect/protoregistry.(*Files).RegisterFile.func2 528.17kB 1.42% 66.94% 528.17kB 1.42% bufio.NewReaderSize (inline) 528.17kB 1.42% 68.36% 528.17kB 1.42% google.golang.org/grpc/internal/transport.newBufWriter (inline) 516.76kB 1.39% 69.75% 516.76kB 1.39% runtime.procresize 514kB 1.38% 71.13% 514kB 1.38% github.com/gocql/gocql/internal/streams.New (inline) 513.50kB 1.38% 72.50% 513.50kB 1.38% go.temporal.io/server/api/history/v1.init 512.50kB 1.38% 73.88% 7680.97kB 20.62% go.uber.org/fx/internal/lifecycle.(*Lifecycle).Start 512.44kB 1.38% 75.26% 512.44kB 1.38% go/token.init.0 512.25kB 1.38% 76.63% 512.25kB 1.38% runtime.gcBgMarkWorker 512.19kB 1.37% 78.01% 512.19kB 1.37% github.com/gocql/gocql.(*Conn).executeQuery 512.17kB 1.37% 79.38% 512.17kB 1.37% google.golang.org/grpc/metadata.FromOutgoingContext 512.17kB 1.37% 80.76% 512.17kB 1.37% google.golang.org/grpc/metadata.MD.Set (inline) 512.10kB 1.37% 82.13% 512.10kB 1.37% context.(*cancelCtx).propagateCancel 512.10kB 1.37% 83.51% 512.10kB 1.37% go.uber.org/fx.moduleOption.apply 512.09kB 1.37% 84.88% 512.09kB 1.37% internal/abi.NewName 512.07kB 1.37% 86.25% 512.07kB 1.37% go.uber.org/dig.(*Scope).newGraphNode 512.06kB 1.37% 87.63% 512.06kB 1.37% google.golang.org/protobuf/internal/impl.fieldInfoForScalar 512.05kB 1.37% 89.00% 512.05kB 1.37% go.temporal.io/server/common/goro.NewAdaptivePool 512.05kB 1.37% 90.38% 512.05kB 1.37% go.temporal.io/server/common/nexus.(*EndpointRegistryImpl).setEnabled 512.05kB 1.37% 91.75% 512.05kB 1.37% google.golang.org/grpc/internal/transport.newWriteQuota (inline) 512.05kB 1.37% 93.13% 512.05kB 1.37% go.temporal.io/sdk/internal.(*baseWorker).runEagerTaskDispatcher 512.02kB 1.37% 94.50% 512.02kB 1.37% context.WithValue 512.02kB 1.37% 95.88% 512.02kB 1.37% encoding/json.typeFields 512.02kB 1.37% 97.25% 512.02kB 1.37% github.com/gocql/gocql.(*ring).addHostIfMissing 512.02kB 1.37% 98.63% 512.02kB 1.37% github.com/google/uuid.UUID.String (inline) 512.02kB 1.37% 100% 512.02kB 1.37% go.uber.org/dig.newParam 0 0% 100% 512.10kB 1.37% context.WithCancel 0 0% 100% 512.10kB 1.37% context.withCancel (inline) 0 0% 100% 512.02kB 1.37% encoding/json.(*Decoder).Decode 0 0% 100% 512.02kB 1.37% encoding/json.(*decodeState).object 0 0% 100% 512.02kB 1.37% encoding/json.(*decodeState).unmarshal 0 0% 100% 512.02kB 1.37% encoding/json.(*decodeState).value 0 0% 100% 512.02kB 1.37% encoding/json.cachedTypeFields 0 0% 100% 512.02kB 1.37% encoding/json.newStructEncoder (inline) 0 0% 100% 512.02kB 1.37% encoding/json.newTypeEncoder 0 0% 100% 512.02kB 1.37% encoding/json.typeEncoder 0 0% 100% 512.02kB 1.37% encoding/json.typeEncoder.func1 0 0% 100% 1557.42kB 4.18% github.com/gocql/gocql.(*ClusterConfig).CreateSession (inline) 0 0% 100% 512.19kB 1.37% github.com/gocql/gocql.(*Query).Iter 0 0% 100% 512.19kB 1.37% github.com/gocql/gocql.(*Query).MapScanCAS 0 0% 100% 512.19kB 1.37% github.com/gocql/gocql.(*Query).execute 0 0% 100% 1045.40kB 2.81% github.com/gocql/gocql.(*Session).KeyspaceMetadata File: xdc.test Build ID: 2f2150795a26dac09836852e7ea9c9cf9f89fc14 Type: alloc_space Time: 2026-01-14 22:16:53 UTC Showing nodes accounting for 99.45MB, 80.53% of 123.49MB total Dropped 305 nodes (cum <= 0.62MB) flat flat% sum% cum cum% 51.44MB 41.65% 41.65% 51.44MB 41.65% regexp.(*bitState).reset 5.86MB 4.75% 46.40% 5.86MB 4.75% go.temporal.io/sdk/internal.newLocalActivityTunnel (inline) 3.53MB 2.85% 49.26% 4.59MB 3.72% compress/flate.NewWriter (inline) 2.50MB 2.03% 51.28% 2.50MB 2.03% runtime.allocm 2.50MB 2.03% 53.31% 3.55MB 2.88% google.golang.org/protobuf/internal/filedesc.(*Message).unmarshalFull 2.33MB 1.89% 55.20% 2.33MB 1.89% go.temporal.io/server/common/aggregate.NewMovingWindowAvgImpl (inline) 2MB 1.62% 56.82% 2MB 1.62% go.uber.org/zap/internal/bufferpool.init.NewPool.func1 2MB 1.62% 58.44% 2MB 1.62% github.com/aws/aws-sdk-go/aws/endpoints.init 1.52MB 1.23% 59.67% 1.52MB 1.23% github.com/gocql/gocql.(*Session).scanColumnMetadataSystem 1.51MB 1.22% 60.89% 1.51MB 1.22% github.com/grpc-ecosystem/grpc-gateway/v2/runtime.(*ServeMux).Handle 1.50MB 1.22% 62.11% 1.50MB 1.22% runtime.malg 1.50MB 1.21% 63.32% 1.50MB 1.21% fmt.init.func1 1.50MB 1.21% 64.54% 1.50MB 1.21% github.com/gocql/gocql.newFramer (inline) 1.50MB 1.21% 65.75% 2MB 1.62% go.uber.org/dig.getParamOrder 1.07MB 0.86% 66.62% 1.07MB 0.86% compress/flate.(*compressor).initDeflate (inline) 1.05MB 0.85% 67.46% 1.05MB 0.85% go.temporal.io/sdk/internal.newBaseWorker 1.05MB 0.85% 68.31% 1.05MB 0.85% google.golang.org/protobuf/internal/strs.(*Builder).grow (inline) 1.03MB 0.84% 69.15% 1.03MB 0.84% compress/flate.(*dictDecoder).init (inline) 1.02MB 0.83% 69.97% 1.02MB 0.83% google.golang.org/protobuf/reflect/protoregistry.(*Files).RegisterFile.func2 1MB 0.81% 70.79% 1MB 0.81% github.com/gocql/gocql/internal/streams.New (inline) 1MB 0.81% 71.60% 2MB 1.62% go.uber.org/dig.(*Scope).findAndValidateResults 1MB 0.81% 72.41% 1MB 0.81% context.(*cancelCtx).propagateCancel 1MB 0.81% 73.22% 1MB 0.81% time.newTimer 1MB 0.81% 74.03% 1MB 0.81% go.temporal.io/server/common/tasks.(*SequentialScheduler[go.shape.interface { Abort(); Ack(); Cancel(); Execute() error; HandleErr(error) error; IsRetryableError(error) bool; MarkPoisonPill() error; Nack(error); QueueID() interface {}; ReplicationTask() *go.temporal.io/server/api/replication/v1.ReplicationTask; Reschedule(); RetryPolicy() go.temporal.io/server/common/backoff.RetryPolicy; SourceClusterName() string; State() go.temporal.io/server/common/tasks.State; TaskCreationTime() time.Time; TaskID() int64 }]).pollTaskQueue 1MB 0.81% 74.84% 7MB 5.67% go.uber.org/dig.(*Scope).provide 1MB 0.81% 75.65% 1MB 0.81% container/list.New (inline) 1MB 0.81% 76.46% 2MB 1.62% go.uber.org/dig.newParam 0.52MB 0.42% 76.88% 1.54MB 1.25% google.golang.org/protobuf/reflect/protoregistry.(*Files).RegisterFile 0.51MB 0.41% 77.29% 1.54MB 1.24% io.ReadAll 0.50MB 0.41% 77.69% 8.50MB 6.88% go.uber.org/fx/internal/lifecycle.(*Lifecycle).Start 0.50MB 0.41% 78.10% 2MB 1.62% github.com/gocql/gocql.(*Conn).executeQuery 0.50MB 0.41% 78.50% 1.50MB 1.22% go.temporal.io/server/common/log.(*zapLogger).cloneWithTags 0.50MB 0.41% 78.91% 10.98MB 8.89% go.uber.org/dig.paramObject.Build 0.50MB 0.4% 79.31% 37.04MB 29.99% go.uber.org/fx/internal/fxreflect.CallerStack 0.50MB 0.4% 79.72% 2.50MB 2.02% go.uber.org/dig.(*graphHolder).EdgesFrom 0.50MB 0.4% 80.12% 7.50MB 6.07% go.uber.org/dig.(*Scope).Provide 0.50MB 0.4% 80.53% 1MB 0.81% go.uber.org/dig.(*Scope).getAllProviders (inline) 0 0% 80.53% 1.07MB 0.86% compress/flate.(*compressor).init 0 0% 80.53% 1.03MB 0.84% compress/flate.NewReader 0 0% 80.53% 1.03MB 0.84% compress/gzip.(*Reader).Reset 0 0% 80.53% 1.03MB 0.84% compress/gzip.(*Reader).readHeader 0 0% 80.53% 4.59MB 3.72% compress/gzip.(*Writer).Write 0 0% 80.53% 1.03MB 0.84% compress/gzip.NewReader (inline) 0 0% 80.53% 1MB 0.81% context.WithCancel 0 0% 80.53% 1MB 0.81% context.withCancel (inline) 0 0% 80.53% 1MB 0.81% fmt.(*pp).doPrintf 0 0% 80.53% 1.02MB 0.82% fmt.(*pp).handleMethods 0 0% 80.53% 1.52MB 1.23% fmt.(*pp).printArg 0 0% 80.53% 2MB 1.62% fmt.Fprintf 0 0% 80.53% 1MB 0.81% fmt.Sprintf 0 0% 80.53% 1.50MB 1.21% fmt.newPrinter 0 0% 80.53% 4.02MB 3.26% github.com/gocql/gocql.(*ClusterConfig).CreateSession (inline) 0 0% 80.53% 2MB 1.62% github.com/gocql/gocql.(*Conn).recv ``` </p> </details> --------- Co-authored-by: David Reiss <[email protected]> |
||
|
|
b717bff6be |
Set the "missing" key in ES sorter (#8964)
## What changed? Explicitly set the `"missing"` key in ES sorter. This is to address pagination bug in OpenSearch 2.8.0+ (see https://github.com/opensearch-project/OpenSearch/issues/8212#issuecomment-1615325095). Run CI tests with latest version of OpenSearch 2 and OpenSearch 3. ## Why? Full support of OpenSearch as visibility store. ## How did you test it? - [ ] built - [ ] run locally and tested manually - [x] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s) ## Potential risks |
||
|
|
f370663d28 |
Add support for protos in chasm libs (#8182)
## What changed? Added support for defining protos in chasm libs. ## Why? Keep everything local to the library. ## How did you test it? - [x] built - [x] run locally and tested manually |
||
|
|
de16f4e787 |
Enable functional tests with OpenSearch 2 (#8121)
## What changed? Enable functional tests with OpenSearch 2 in CICD ## Why? Run compatibility with OpenSearch 2 ## How did you test it? - [ ] built - [ ] run locally and tested manually - [ ] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s) ## Potential risks |
||
|
|
06aaa0358b |
Export OTEL by test suite (#7941)
## What changed? Redo of https://github.com/temporalio/temporal/pull/7871. (1) Instead of collecting OTEL trace across all suites, it tracks it per suite and only exports traces on failure. (2) It annotates the test's RPCs with the test name. ## Why? (1) More efficient. (2) Allows filtering traces by test name. ## How did you test it? - [ ] built - [ ] run locally and tested manually - [x] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s) Example run with artifacts: https://github.com/temporalio/temporal/actions/runs/15786189984?pr=7941 <img width="1100" alt="Screenshot 2025-06-20 at 12 37 20 PM" src="https://github.com/user-attachments/assets/d46668e3-4766-4689-8ebf-b9df4ef9e569" /> |
||
|
|
ac5155f3b1 |
Collect OTEL traces from CI tests (#7871)
## What changed? Collecting OTEL traces from functional tests. And packaging them up as an artifact. ## Why Help debug flaky tests. ## Testing You can see the trace artifacts on [this run](https://github.com/temporalio/temporal/actions/runs/15719131802?pr=7871). |
||
|
|
eca81d81ab | Support add search attribute in dual visibility (#7781) | ||
|
|
8e8f1b0f7c |
Remove license header from every file (#7689)
## What changed?
<!-- Describe what has changed in this PR -->
Remove license header from every file. Because it is really hard to
follow in this PR here is the summary:
1. License header is removed from all `.go` and `.proto` files
:fireworks::fireworks:🎆.
2. `LICENSE` file in the root directory has only Temporal and Uber
copyrights.
3. 5 other `LICENSE` files added to the packages which have copyrights
different from Temporal and Uber: Datadog, Xargin, "Mat Ryer, Tyler
Bunnell and contributors".
4. `license_file` flag is removed from all code generation tools.
5. `copyright_file` flag is removed from `go:generate mockgen`
directive.
6. All copyright related targets are removed from `Makefile`.
7. Updated Temporal copyright year to 2025 everywhere.
## Why?
<!-- Tell your future self why have you made these changes -->
I double checked with legal department that it is not needed to have
license header in every file. One file per repo is enough. I put all
copyrights to the root `LICENSE` file and removed header from all other
files. Also updated tools and `Makefile`.
|
||
|
|
3a7133f6c6 |
Send raw history events from history to matching service (#7252)
## What changed? Send raw history events from history to matching service similar to the change in https://github.com/temporalio/temporal/pull/7179. Instead of deserializing history blobs to history events, history service will send the raw bytes to matching service. History service uses a different proto message to do that. Matching client response proto has History message in the same field. GRPC's proto deserialization will automatically deserialize raw history batch bytes to History message. Matching to frontend response still have deserialized History message in the response. And there is not much CPU usage to save by changing this. ## Why? We have seen incidents of high history CPU usage when large amount of history events are pulled. With this change we can reduce the CPU burden on history service during this time. ## How did you test it? Unit tests ## Potential risks ## Documentation ## Is hotfix candidate? No |
||
|
|
fff7ceb185 |
Send raw history events from history to frontend service (#7342)
## What changed? Change to send raw history blobs from history service to frontend service. History service returns a new proto message that has a repeated bytes history field. This response is wire compatible with the original response which has temporal.api.history.v1.History type for this field. This allows history service to not deserialize events from this data blob. This considerably reduces CPU usage. History service still needs event_id and version decoded from history events. For this we use a new proto message StrippedHistoryEvent which has these two fields only. It takes considerably less CPU to decode events to this struct. ## Why? We have seen incidents of high history CPU usage when large number of GetWorkflowExecutionHistory calls are made to workflows which has large history. With this change we can reduce the CPU burden on history service during this API call. ## How did you test it? Existing unit and functional tests. ## Potential risks ## Documentation ## Is hotfix candidate? |
||
|
|
86da024554 |
Revert raw history changes (#7314)
- **Revert "Fix history batch validations (#7281)"** - **Revert "Send raw history blobs from history service to frontend (#7179)"** ## What changed? Revert the changes for returning raw history event from history to frontend. ## Why? Some logic is moved from history to frontend handler. This might cause issues during upgrade. I will push a change to first copy these operations to frontend. Once that change is released, I will reapply this change. ## How did you test it? ## Potential risks ## Documentation ## Is hotfix candidate? |
||
|
|
ee38986f0a |
Send raw history blobs from history service to frontend (#7179)
## What changed? Change to send raw history blobs from history service to frontend service. History service returns a new proto message that has a repeated bytes history field. This response is wire compatible with the original response which has temporal.api.history.v1.History type for this field. This allows history service to not deserialize events from this data blob. This considerably reduces CPU usage. History service still needs event_id and version decoded from history events. For this we use a new proto message StrippedHistoryEvent which has these two fields only. It takes considerably less CPU to decode events to this struct. ## Why? We have seen incidents of high history CPU usage when large number of GetWorkflowExecutionHistory calls are made to workflows which has large history. With this change we can reduce the CPU burden on history service during this API call. ## How did you test it? Existing unit tests and manual test to run workflows. ## Potential risks ## Documentation ## Is hotfix candidate? No |
||
|
|
cf2eddf2ae |
Open Tempo OTEL HTTP port (#7033)
## What changed? <!-- Describe what has changed in this PR --> Open up Grafana Tempo's OTEL HTTP port, too. ## Why? <!-- Tell your future self why have you made these changes --> It's useful to send traces via curl. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Documentation <!-- Have you made sure this change doesn't falsify anything currently stated in `docs/`? If significant new behavior is added, have you described that in `docs/`? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |
||
|
|
c702151813 |
Grafana Tempo (#7006)
## What changed? <!-- Describe what has changed in this PR --> Added Grafana Tempo - an OTEL collector - to the developer setup. Since we're already using Grafana, Tempo seemed like a logical choice. ## Why? <!-- Tell your future self why have you made these changes --> It allows developers to see all the RPC calls they are making (e.g. when running the server locally or a functional test). Tempo allows filtering by workflow ID. _(note that not _all_ places are tagged yet, but lots of them)_ ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> ``` make start-grafana-tempo make OTEL=true start ``` ``` tctl --ns default namespace register tctl wf start --tq test --wid test -wt test ``` <img width="3352" alt="image" src="https://github.com/user-attachments/assets/5809691a-da32-4a04-8e80-700f8acd47e5" /> And running a functional test from the IDE: <img width="3346" alt="image" src="https://github.com/user-attachments/assets/061bfaf3-0a34-4b4e-a06c-497dfa3a948a" /> ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Documentation <!-- Have you made sure this change doesn't falsify anything currently stated in `docs/`? If significant new behavior is added, have you described that in `docs/`? --> Updated docs/development/tracing.md ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |
||
|
|
089a9b4e80 |
Latest UI, Grafana and Prometheus images (#6992)
## What changed? <!-- Describe what has changed in this PR --> Using the latest `grafana`, `temporalio/ui` and `prometheus` images for our local dev setup. ## Why? <!-- Tell your future self why have you made these changes --> The current versions are 6+ months old. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> Started locally. ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Documentation <!-- Have you made sure this change doesn't falsify anything currently stated in `docs/`? If significant new behavior is added, have you described that in `docs/`? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |
||
|
|
75bbe582f1 |
Rerun failed tests automatically (#6668)
## What changed? Leverage gotestsum to automatically retry failed tests in all suites (unit, integration, functional, xdc, ndc). By default, tests will be retried twice if there are no more than 10 failed tests in the suite. ### Changes to the `Makefile` Add `FAILED_TEST_RETRIES` variable, defaulting to `2`. Removed the use of `SINGLE_TEST_ARGS`, `TEST_ARGS` can be used instead. Moved `-race` flag to its own separate flag and freed up `TEST_ARGS` to be set by callers without. Added: ``` # Whether or not to test with the race detector. All of (1 on y yes t true) are true values. TEST_RACE_FLAG ?= on # Whether or not to shuffle tests. All of (1 on y yes t true) are true values. TEST_SHUFFLE_FLAG ?= on ``` Added `COMPILED_TEST_ARGS` that combines the common flags and options to be reused by all test invocations. ### Changes to `run-tests.yml` Removed the use of `SINGLE_TEST_ARGS`. Merged the `Run single unit test` step into `Run unit tests`. Set `FAILED_TEST_RETRIES: "0"` on flaky test detection steps. Removed steps to upload test results to buildkite and relevant script / Makefile content. Moved flaky test detection to after the upload test results (to GH) step in all jobs. ## Why? So we can enable flaky tests to get coverage without hurting the CI experience. |
||
|
|
cd9e5005e1 |
Reduce cassandra heap size in CI (#6673)
## What changed? Run cassandra with smaller heap (2GB) in CI. Default (on standard GHA workers) comes out to 4GB, so this is 1/2 of what it was before. ## Why? Try to reduce CI flakiness. |
||
|
|
0541b9f34b |
Action inputs to dispatch n-runs of a single test in CI (#6297)
## What changed? Add workflow dispatch options to the functional tests Github Action to allow us to run n-iterations of a single functional test with a configurable timeout. There is also an option to run n-iterations of a single unit test, although it may be faster to run that locally. WARNING: For functional tests, this will definitely be oomkilled for n>=100, likely for n=>50 too. I suggest to start with n=20 to see how the memory goes and then increase from there. Different DBs may use different amounts of RAM also. ## Why? To aid in the diagnosis and treatment of flaky tests. ## How did you test it? Tested in github actions. Here is the action run normally, with no new input parameters: https://github.com/temporalio/temporal/actions/runs/11261156403 Here is the action run on one test multiple times: https://github.com/temporalio/temporal/actions/runs/11261236304 While we still have buildkite, the uploaded test results will be uploaded. You can find them by going to https://buildkite.com/organizations/temporal/analytics/suites/temporal-public/runs?branch=all+branches and looking for a recent run with `"job: functional-test"` and the commit hash you used. Here is the buildkite output of the run above: https://buildkite.com/organizations/temporal/analytics/suites/temporal-public/runs/39901afd-35f1-8171-9257-e0bada374824 ## Potential risks Our functional test pipeline could be broken by this PR, but we would notice that pretty immediately ## Documentation How to run it yourself 1. Go to https://github.com/temporalio/temporal/actions/workflows/run-tests.yml 2. Click "run workflow" on the upper right hand side 5. Set Commit SHA to the latest commit on the branch 6. Select your desired options 7. Click the green "Run workflow" button ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |
||
|
|
ba00069083 |
Remove version field from docker compose yaml file (#6610)
## What changed? Remove the version field from all the docker compose yaml files ## Why? I followed the dev [doc](https://github.com/temporalio/temporal/blob/main/develop/docker-compose/README.md) to setup the local env, and it showed the warning message like `WARN[0003] /xxxx/temporal/develop/docker-compose/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion` Some discussions are [here](https://forums.docker.com/t/docker-compose-yml-version-is-obsolete/141313) and the `version` field was confirmed to be deprecated. So I want to raise this PR to remove this deprecated field.  ## How did you test it? N/A ## Potential risks N/A ## Documentation N/A ## Is hotfix candidate? No Co-authored-by: Roey Berman <[email protected]> |
||
|
|
ab992e6ad5 |
Fix buf-breaking script to account for already merged commit (#6296)
## What changed? Fix buf-breaking script to account for already merged commit ## Why? Re-running GHA run-tests for old commits can fail if there are changes to proto files in main branch after the commit you're trying to test. |
||
|
|
78b5fb6f11 | Fix ES docker container for GHA tests (#6284) | ||
|
|
7f01c238c1 |
Check for breaking proto changes (#6114)
## What changed? - Add (back) make target buf-breaking to run buf's breaking proto changes check against the parent commit and the main branch. - Add buf-breaking to ci-build-misc so it runs in CI. - Fix goimports target to use shell variables instead of git variables to make make faster, and also fix the binary name (was just broken). - GitHub Actions: run tests on PR head, not merge. ## Why? Detecting breaking proto changes early avoids bugs. ## How did you test it? Manual testing with deliberate breaking changes. |
||
|
|
fa6859c861 |
Do proto generation in one step (#6115)
## What changed? - Rearrange make targets and scripts so that generated proto files (in `api`) are fully generated before replacing existing files. - Put all steps for generating proto files in a single script. ## Why? - Previously, if any part of proto generation failed (including installing dependencies), the repo would be left in a broken state with either missing files, or incorrectly-generated files, depending on where the failure was. This runs all the generation steps in a designated order before touching any existing files, then moves them over in one step. On failure, the new files are left in `api.new`. - Relying on make ordering is icky. ## How did you test it? manual testing |
||
|
|
4719f06fa4 |
Fix GHA upload-test-results (#6091)
## What changed? <!-- Describe what has changed in this PR --> Separate test execution and test result upload. And check XML file exists. Previously introduced here https://github.com/temporalio/temporal/pull/6049 ## Why? <!-- Tell your future self why have you made these changes --> make aborts execution when the previous target fails. Oops. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> Scenarios: - [x] no Buildkite secret set - [x] make target has test errors - [x] make target has no test errors - [x] make target aborts (no XML file written) ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Documentation <!-- Have you made sure this change doesn't falsify anything currently stated in `docs/`? If significant new behavior is added, have you described that in `docs/`? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |
||
|
|
618b35e54d |
Track flaky tests (redux) (#6049)
## What changed? <!-- Describe what has changed in this PR --> Uploading test results to Buildkite for analytical purposes. ⚠️ This will not work for any PR from a fork (Temporal developer or not), due to GitHub's security model. It has to be a branch on this repo to run successfully (includes `main`, ofc). ## Why? <!-- Tell your future self why have you made these changes --> To be able to analyze test flakiness. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> Ran this PR and saw test run in Buildkite. <img width="1261" alt="Screenshot 2024-05-31 at 5 11 07 PM" src="https://github.com/temporalio/temporal/assets/159852/f04f7392-12e2-4325-a161-ea038e9fe281"> ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Documentation <!-- Have you made sure this change doesn't falsify anything currently stated in `docs/`? If significant new behavior is added, have you described that in `docs/`? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |
||
|
|
48028fb82d |
Update temporalio/ui docker image version (#5806)
## What changed? <!-- Describe what has changed in this PR --> Update temporalio/ui docker image version ## Why? <!-- Tell your future self why have you made these changes --> New ui features. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Documentation <!-- Have you made sure this change doesn't falsify anything currently stated in `docs/`? If significant new behavior is added, have you described that in `docs/`? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |
||
|
|
5e3047850a |
Comments and docstrings (#5579)
Miscellaneous edits of comments and docstrings |
||
|
|
c504991e6d |
Reorganize docs (#5535)
## What changed?
<!-- Describe what has changed in this PR -->
I reorganized our docs into `docs/{admin,architecture,development}`.
## Why?
<!-- Tell your future self why have you made these changes -->
We discussed this internally, but I believe this is a better
segmentation for the different audiences looking at our docs. I plan on
adding more stuff to docs/admin like metrics and dynamic config docs.
## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
I'm mainly looking for broken links.
- I went through each markdown file in docs manually.
- I looked through all inspection errors in the IDE.
- I looked at all references to "docs/" or "develop/" in our code.
## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->
## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->
## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
|
||
|
|
c347d2061f |
Remove buildkite configs and references (#5467)
## What changed? <!-- Describe what has changed in this PR --> Remove buildkite configs and references. ## Why? <!-- Tell your future self why have you made these changes --> Buildkite is no longer used. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> Existing tests. ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> No. ## Documentation <!-- Have you made sure this change doesn't falsify anything currently stated in `docs/`? If significant new behavior is added, have you described that in `docs/`? --> N/A ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> No. |
||
|
|
0280e70e5b |
Remove support for standard visibility (#5387)
## What changed? <!-- Describe what has changed in this PR --> Remove support for standard visibility ## Why? <!-- Tell your future self why have you made these changes --> Standard visibility is deprecated. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |
||
|
|
a9c9d9921e |
OTEL setup via environment variables (#5230)
## What changed? <!-- Describe what has changed in this PR --> - allow configuring a custom OTEL `service.name` prefix - allow configuring an OTEL exporter via env vars (following the [OTEL spec](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options)) **Note that the OTEL exporter from the environment variables will only be created if there isn't already one from the config.** Creating an additional one wouldn't make any sense since the env variables would be applied to both anyways and there would not be any difference between them. ## Why? <!-- Tell your future self why have you made these changes --> Addresses: - https://github.com/temporalio/temporal/issues/4042 - https://github.com/temporalio/temporal/issues/4041 - our own (increasing) need to enable OpenTelemetry tracing without touching the Server config (for ad-hoc debugging when working on a SDK, for example) ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> I ran an OTEL collector to verify it sends the tracing exports. These are the env vars I set to make it work: ```go os.Setenv("OTEL_TRACES_EXPORTER", "oltp") os.Setenv("OTEL_EXPORTER_OTLP_TRACES_INSECURE", "true") ``` ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> I doubt anyone would accidentally have these env variables specified and turn on OpenTelemetry by accident. Unless these are specified; no behavior change occurs. ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> No |
||
|
|
13077ccfa5 |
Allow client to request not to add timestamp to scheduled workflow id (#5447)
## What changed? Now client can request not to append timestamp to scheduled workflow ID. ## Why? User request. ## How did you test it? Functional test. ## Potential risks N/A ## Documentation To the best of my ability. ## Is hotfix candidate? No |
||
|
|
99c6fc532e |
Update Go SDK to v1.26.0-rc.2 (#5396)
## What changed? Update Go SDK to v1.26.0-rc.2 ## Why? Use a tagged Go SDK for the server release --------- Co-authored-by: Roey Berman <[email protected]> |
||
|
|
87b8bd8eee |
Improve DLQ documentation (#5366)
## What changed? <!-- Describe what has changed in this PR --> I updated the docs for the DLQ to include a few more things and made some structural changes. ## Why? <!-- Tell your future self why have you made these changes --> To make the docs more comprehensive and better structured. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |
||
|
|
ecc18127af |
Switch from docker-compose to docker compose (#5314)
## What changed? <!-- Describe what has changed in this PR --> Switch from `docker-compose` to `docker compose`. ## Why? <!-- Tell your future self why have you made these changes --> `docker-compose` was deprecated some time ago. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> Run locally. ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> No risks. ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> No. |
||
|
|
33d1040717 |
Update base-ci-builder image (#5311)
## What changed? <!-- Describe what has changed in this PR --> Update `base-ci-builder` image to 1.10.8. ## Why? <!-- Tell your future self why have you made these changes --> It updates `alpine` image to 3.19. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |
||
|
|
79b9997476 |
Pull in protojson vuln fixes (#5267)
## What was changed I bumped the version of api-go and sdk-go and _slightly_ altered our nettest RPC factory interface to deal with changes in v1.60.0 of go-grpc ## Why? To fix the protojson DOS vulns recently patched in the upstream golang/protobuf. See https://github.com/temporalio/api-go/pull/143 for details ## How did you test it? I pulled the tests added to the protojson repo into our fork ## Potential risks N/A ## Is hotfix candidate? No as it requires all our other proto changes which aren't released |
||
|
|
f0452e6c3c |
Github workflow to run tests (#5248)
## What changed? <!-- Describe what has changed in this PR --> Github workflow to run tests. I couldn't add tests on `windows-latest` nor `macos-latest` at this moment. In Windows, there are issues with filepaths in the archiver (eg: `file:///home/` vs `file:///c:\\`, note that in Windows, it needs a forward slash before the actual path `c:\\`, but it messes up with the actual path) In MacOS, it doesn't have Docker installed by default. Also, in both Windows and MacOS, some TLS related unit tests are failing. ## Why? <!-- Tell your future self why have you made these changes --> Replace buildkite. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> Ran in my fork: https://github.com/rodrigozhou/temporal/actions/runs/7401242980 ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> No. ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> No. |
||
|
|
b78b3a6dcd |
Fix buildkite cassandra setup (#5263)
## What changed? <!-- Describe what has changed in this PR --> Specify patch version of Cassandra image to use in buildkite. ## Why? <!-- Tell your future self why have you made these changes --> It seems that the latest version (3.11.16) has some issues with buildkite (`Cassandra 3.0 and later require Java 8u40 or later.`) ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> |