We have a SSIS package that intermittently fails on the deployed server
(works fine on our dev server) with the following error:
"The variable "%1!s!" is already on the read list. A variable may only be
added once to either the read lock list or the write lock list."
Not only does it fail only some of the time it also fails on different
variables, always on an expression and always at the begining.
The variables that are giving the intermittent problems are used in more
than one expression to initialize other variables or properties.
I'm worried it is executing the expressions on more than one thread and
ending up on different processors, and the locking scheme doesn't use a
memory boundary when checking if the variable is already on the readonly list
before adding it.
Here are some examples:
The following is the *first* 4 messages of one failed run:
Beginning of package execution
The variable "User::RefreshFrom" is already on the read list. A variable may
only be added once to either the read lock list or the write lock list.
The expression for variable "DeleteRevenueFactQuery" failed evaluation.
There was an error in the expression.
An error occurred with the following error message: "The expression for
variable "DeleteRevenueFactQuery" failed evaluation. There was an error in
the expression.".
The following is the *first* 3 messages of another failed run:
Beginning of package execution
The variable "User::SqlServer" is already on the read list. A variable may
only be added once to either the read lock list or the write lock list.
The expression "@[User::SqlServer]" on property "ServerName" cannot be
evaluated. Modify the expression to be valid.