Skip to content

Fatal: no implicit conversion of StringIO into String #310

@ekleinod

Description

@ekleinod

Hi, first things first: thanks for the great work 👍

I encountered an error when starting the webserver:

Starts the server with tutorial project.

Call the following pages:
http://localhost:8080/ - welcome page of the server
http://localhost:8080/taskjuggler - project page, tutorial 'Accounting Software' should appear
http://localhost:8080/taskjuggler?project=acso;report=frame.index - project overview

If everything works, stop the server with ctrl+c

TaskJuggler v3.8.4 - A Project Management Software

Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020
              by Chris Schlaeger <cs@taskjuggler.org>

This program is free software; you can redistribute it and/or modify it under
the terms of version 2 of the GNU General Public License as published by the
Free Software Foundation.

Fatal: no implicit conversion of StringIO into String
/usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/daemon/Daemon.rb:72:in 'IO#reopen'
/usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/daemon/Daemon.rb:72:in 'TaskJuggler::Daemon#start'
/usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/daemon/WebServer.rb:62:in 'TaskJuggler::WebServer#start'
/usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/apps/Tj3WebD.rb:99:in 'TaskJuggler::Tj3WebD#appMain'
/usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/Tj3AppBase.rb:161:in 'TaskJuggler::Tj3AppBase#main'
/usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/tj3webd.rb:16:in '<top (required)>'
<internal:/usr/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
<internal:/usr/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
/usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/bin/tj3webd:4:in '<top (required)>'
/usr/bin/tj3webd:25:in 'Kernel#load'
/usr/bin/tj3webd:25:in '<main>'

*******************************************************************************
You have triggered a bug in TaskJuggler version 3.8.4!
Please see the user manual on how to get this bug fixed!
http://www.taskjuggler.org/tj3/manual/Reporting_Bugs.html#Reporting_Bugs_and_Feature_Requests
*******************************************************************************
/usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/MessageHandler.rb:301:in 'TaskJuggler::MessageHandlerInstance#addMessage': RuntimeError (RuntimeError)
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/MessageHandler.rb:191:in 'TaskJuggler::MessageHandlerInstance#fatal'
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/MessageHandler.rb:312:in 'TaskJuggler::MessageHandler#fatal'
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/Tj3AppBase.rb:176:in 'TaskJuggler::Tj3AppBase#main'
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/tj3webd.rb:16:in '<top (required)>'
	from <internal:/usr/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
	from <internal:/usr/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/bin/tj3webd:4:in '<top (required)>'
	from /usr/bin/tj3webd:25:in 'Kernel#load'
	from /usr/bin/tj3webd:25:in '<main>'
/usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/daemon/Daemon.rb:72:in 'IO#reopen': no implicit conversion of StringIO into String (TypeError)

      $stdout.reopen(StringIO.new)
                     ^^^^^^^^^^^^
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/daemon/Daemon.rb:72:in 'TaskJuggler::Daemon#start'
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/daemon/WebServer.rb:62:in 'TaskJuggler::WebServer#start'
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/apps/Tj3WebD.rb:99:in 'TaskJuggler::Tj3WebD#appMain'
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/taskjuggler/Tj3AppBase.rb:161:in 'TaskJuggler::Tj3AppBase#main'
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/lib/tj3webd.rb:16:in '<top (required)>'
	from <internal:/usr/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
	from <internal:/usr/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
	from /usr/lib/ruby/gems/3.4.0/gems/taskjuggler-3.8.4/bin/tj3webd:4:in '<top (required)>'
	from /usr/bin/tj3webd:25:in 'Kernel#load'
	from /usr/bin/tj3webd:25:in '<main>'
^CFatal: Aborting on user request!

Background information: I am using my own taskjuggler docker container, so I call:

mkdir --parent example/testserver
cd example/testserver
cp ../taskjuggler.rc .
cp ../tutorial.tjp .

docker run \
	--rm=true \
	--name $CONTAINERNAME \
	--volume "${PWD}/":/tj3 \
	--user `id -u` \
	--entrypoint tj3d \
	--publish 8080:8080 \
	$IMAGENAME \
		--dont-daemonize \
		--webserver \
		"tutorial.tjp"

so this resolves to

tj3d --dont-daemonize --webserver "tutorial.tjp" 

See https://gitlab.com/etg-docker/taskjuggler/-/tree/main/test for the used files if this is needed for debugging.

I hope I provided all information for your debug process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions