EC2126

2 minute readReference

Synopsis

WARNING EC2126: [agent]: agent reports: [Unable to validate existing symlink (readlink) ‘[path]’: Invalid argument]

WARNING EC2126: [agent]: agent reports: [Unable to validate existing symlink ‘[path]’: [error]]

Description

If any of the directories specified in emake root are actually symbolic links, emake coordinates with the agent to replicate that symlink structure on the cluster host for the duration of the build. For example, suppose there is a symlink /home/build/proj which points to /home/build/src/proj, and further that emake root is set to /home/build/proj. In that case, emake transparently replaces /home/build/proj with /home/build/src/proj in the emake root value sent to the agent, and in addition sends a command to the agent to create the symlink /home/build/proj. This warning occurs when the agent attempts to create the symlink but fails to do so for any reason.

There are two distinct forms of the error: the first, which includes the keyword readlink, indicates that the path already exists on the agent host, but it is not already a symlink. For example, it may be a directory or a regular file instead.

The second form is used for all other types of failures, and indicates that the agent could not access the path at all. The operating system error at the end of the message provides additional detail about the nature of the failure. As an example, you may see this form if the path is not accessible by the agent due to NFS permission restrictions.

EC2126 is considered a warning rather than an error, because although it prevents emake from using the agent indicated in the message, emake may still use agents on other hosts.

Reasons

The most common cause of this failure is that the path identified in the message exists on the agent host, but is not a symlink.

Fixes

If possible, remove the file or directory identified by the path in the message from the agent host. If that is not possible, try setting emake root to a higher location. For example, using the example above, emake root could be set to /home/build instead of /home/build/proj.