CMake + Long lines in standard output crash / Agent hangs
I believe I've found a bug. Here's the setup:
- Solaris v5.10 (Agent OS)
- Red Hat v6.3 (Agent OS)
- Red Hat v6.3 (Server OS)
- TeamCity v7.1.5
- Sun Java v1.6.0_01
- CMake v2.8.1
When using the CMake plugin, if a really long line is printed out to standard out (possibly standard error too?), the agent/build process on the agent machine hangs indefinitely. This happens on Solaris and Red Hat. Stopping the build does not work. Logging on to the agent machine, "agent.sh stop" does not stop the agent and neither does "agent.sh stop kill". To stop the agent, I have to use a kill -9 <PID> on both TeamCity Java processes (performed on the agent).
This is very easy to replicate. Create a configuration. In Step 1, use the command line runner. For the command, use "cmake <PATH-TO-CMAKELISTS.TXT>". In Step 2, use the CMake Build runner and point it to the same CMakeLists.txt. Run that configuration and Step 1 succeeds but it hangs on Step 2 indefinitely (so Step 2 is the issue). I can remove/disable Step 1 and get the same hanging results.
I've attached the CMakeLists.txt file I used, the file containing the super long line (garbage.txt), and output from running truss on the hanging process on the agent (trace.log).
Currently I believe this is a bug in the CMake plugin. This scenario works if you run cmake using the command line runner only.
Attachment(s):
trace.log.zip
garbage.txt.zip
CMakeLists.txt.zip
Please sign in to leave a comment.
Hi
Sorry we've completely missed your post. Thanks you for reporting and providing example, that helped a lot.
There's issue for that case TW-50995. It's fixed in latest plugin versions.