@@ -397,7 +397,7 @@ func (s *versioningIntegSuite) dispatchNewWorkflowStartWorkerFirst() {
397397 s .Equal ("done!" , out )
398398}
399399
400- func (s * versioningIntegSuite ) TestDisableLoadUserDataDefaultTasksBecomeUnversioned () {
400+ func (s * versioningIntegSuite ) TestDisableUserData_DefaultTasksBecomeUnversioned () {
401401 dc := s .testCluster .host .dcClient
402402 dc .OverrideValue (dynamicconfig .MatchingNumTaskqueueReadPartitions , 1 )
403403 defer dc .RemoveOverride (dynamicconfig .MatchingNumTaskqueueReadPartitions )
@@ -1471,7 +1471,7 @@ func (s *versioningIntegSuite) dispatchCron() {
14711471 s .GreaterOrEqual (runs2 .Load (), int32 (3 ))
14721472}
14731473
1474- func (s * versioningIntegSuite ) TestDisableLoadUserData () {
1474+ func (s * versioningIntegSuite ) TestDisableUserData () {
14751475 tq := s .T ().Name ()
14761476 v1 := s .prefixed ("v1" )
14771477 v2 := s .prefixed ("v2" )
@@ -1482,6 +1482,9 @@ func (s *versioningIntegSuite) TestDisableLoadUserData() {
14821482 // First insert some data (we'll try to read it below)
14831483 s .addNewDefaultBuildId (ctx , tq , v1 )
14841484
1485+ // unload so that we reload and pick up LoadUserData dynamic config
1486+ s .unloadTaskQueue (ctx , tq )
1487+
14851488 dc := s .testCluster .host .dcClient
14861489 defer dc .RemoveOverride (dynamicconfig .MatchingLoadUserData )
14871490 dc .OverrideValue (dynamicconfig .MatchingLoadUserData , false )
@@ -1509,7 +1512,34 @@ func (s *versioningIntegSuite) TestDisableLoadUserData() {
15091512 s .Require ().ErrorAs (err , & failedPreconditionError )
15101513}
15111514
1512- func (s * versioningIntegSuite ) TestWorkflowGetsStuckWhenDisablingLoadingUserData () {
1515+ func (s * versioningIntegSuite ) TestDisableUserData_UnversionedWorkflowRuns () {
1516+ tq := s .T ().Name ()
1517+ ctx , cancel := context .WithTimeout (context .Background (), 10 * time .Second )
1518+ defer cancel ()
1519+
1520+ dc := s .testCluster .host .dcClient
1521+ defer dc .RemoveOverride (dynamicconfig .MatchingLoadUserData )
1522+ dc .OverrideValue (dynamicconfig .MatchingLoadUserData , false )
1523+
1524+ wf := func (ctx workflow.Context ) (string , error ) {
1525+ return "ok" , nil
1526+ }
1527+ wrk := worker .New (s .sdkClient , tq , worker.Options {})
1528+ wrk .RegisterWorkflowWithOptions (wf , workflow.RegisterOptions {Name : "wf" })
1529+ s .NoError (wrk .Start ())
1530+ defer wrk .Stop ()
1531+
1532+ run , err := s .sdkClient .ExecuteWorkflow (ctx , sdkclient.StartWorkflowOptions {
1533+ TaskQueue : tq ,
1534+ WorkflowExecutionTimeout : 5 * time .Second ,
1535+ }, "wf" )
1536+ s .NoError (err )
1537+ var out string
1538+ s .NoError (run .Get (ctx , & out ))
1539+ s .Equal ("ok" , out )
1540+ }
1541+
1542+ func (s * versioningIntegSuite ) TestDisableUserData_WorkflowGetsStuck () {
15131543 tq := s .T ().Name ()
15141544 v1 := s .prefixed ("v1" )
15151545 ctx , cancel := context .WithTimeout (context .Background (), 30 * time .Second )
@@ -1528,7 +1558,7 @@ func (s *versioningIntegSuite) TestWorkflowGetsStuckWhenDisablingLoadingUserData
15281558 return nil
15291559 }
15301560 wrk := worker .New (s .sdkClient , tq , worker.Options {
1531- BuildID : "v1" ,
1561+ BuildID : v1 ,
15321562 UseBuildIDForVersioning : true ,
15331563 MaxConcurrentWorkflowTaskPollers : numPollers ,
15341564 })
@@ -1538,16 +1568,31 @@ func (s *versioningIntegSuite) TestWorkflowGetsStuckWhenDisablingLoadingUserData
15381568
15391569 run , err := s .sdkClient .ExecuteWorkflow (ctx , sdkclient.StartWorkflowOptions {
15401570 TaskQueue : tq ,
1541- WorkflowExecutionTimeout : 5 * time .Second ,
1571+ WorkflowExecutionTimeout : 10 * time .Second ,
15421572 }, "wf" )
15431573 s .Require ().NoError (err )
1544- err = run . Get ( ctx , nil )
1545- var timeoutError * temporal. TimeoutError
1546- s . Require (). ErrorAs ( err , & timeoutError )
1574+
1575+ // should not run on versioned worker
1576+ time . Sleep ( 2 * time . Second )
15471577 s .Require ().Equal (int32 (0 ), runs .Load ())
1578+
1579+ wrk .Stop ()
1580+
1581+ // start unversioned worker and let task run there
1582+ wrk2 := worker .New (s .sdkClient , tq , worker.Options {
1583+ MaxConcurrentWorkflowTaskPollers : numPollers ,
1584+ })
1585+ wrk2 .RegisterWorkflowWithOptions (wf , workflow.RegisterOptions {Name : "wf" })
1586+ s .NoError (wrk2 .Start ())
1587+ defer wrk2 .Stop ()
1588+
1589+ // now workflow can complete
1590+ err = run .Get (ctx , nil )
1591+ s .NoError (err )
1592+ s .Require ().Equal (int32 (1 ), runs .Load ())
15481593}
15491594
1550- func (s * versioningIntegSuite ) TestWorkflowQueryTimesOutWhenDisablingLoadingUserData () {
1595+ func (s * versioningIntegSuite ) TestDisableUserData_QueryTimesOut () {
15511596 tq := s .T ().Name ()
15521597 v1 := s .prefixed ("v1" )
15531598 ctx , cancel := context .WithTimeout (context .Background (), 30 * time .Second )
@@ -1562,7 +1607,7 @@ func (s *versioningIntegSuite) TestWorkflowQueryTimesOutWhenDisablingLoadingUser
15621607 })
15631608 }
15641609 wrk := worker .New (s .sdkClient , tq , worker.Options {
1565- BuildID : "v1" ,
1610+ BuildID : v1 ,
15661611 UseBuildIDForVersioning : true ,
15671612 MaxConcurrentWorkflowTaskPollers : numPollers ,
15681613 })
0 commit comments