OpenGL2/vtkShader compilation reports failure when it is called a second time without changin the source code.
The compilation fails in the second run because after the first run, the shader->Dirty member variable is set to false and Compile function starts like this:
bool vtkShader::Compile()
{
if (this->Source.empty() || this->ShaderType == Unknown || !this->Dirty)
{
return false;
}
One would expect that this functions returns true if !this->Dirty.