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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions