glGetShaderiv(shader, GL_COMPILE_STATUS, &status);
glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength);
glGetShaderInfoLog(shader, maxLength, &length, log);

i see a strange result, status is not true, maxLength is very big, but length is zero, and log is empty, but finally i get the right 3d scene.