Re: Issue tracker not working

"John P. Rouillard" <[email protected]>
Newsgroups gmane.comp.bug-tracking.roundup.user
Message-ID <[email protected]>
Hello Gianluca:

I'm sorry you have run into issues. Let's see what we can do to fix it.

Before we get started, a few questions.

Do you have a backup of your original database and your original
tracker before you started the upgrade?

Do you have a backup of your database and your tracker as they are
right now?

How experienced are you with Python? Are you comfortable using
the debugger for example.

Which database (anydbm, sqlite, mysql, postgresql) are you using?

Do you know which tracker template your tracker is based on?  I think
'classic' and 'minimal' were the only choices for 1.3.3 and previous.

Also Ralf, Thomas, Bern, jerrykan any thoughts here? Ideas on how to
set up an handler to get more info (e.g. local variable dump to see
info about self/self._value would be nice)?  The TAL code is probably
the area where I have the least experience.

In message <[email protected]>,
Gianluca Ferrazzano writes:
>I have recently updates the Roundup issue tracker from 1.3.3 to 2.2.0,

That's a big jump. Did you do all the upgrades in one step, or did you
do it in multiple steps? For example:

  * upgrade from 1.3.3 to 1.6.1 and verify things were working
  * then do the 1.6.1 to 2.0.0 upgrade and convert to Python3
  * then do the 2.0.0 to 2.2.0 upgrade

There is no reason I know of that doing it all in one step shouldn't
work. However, if you used mutiple steps, it would help localize it to
a particular release/releases.

>I have done all the required steps but I am getting this error when I try 
>to access the issue tracker.

For all url references, '.../tracker/' means everything up to and
including the tracker designator (if present). For example Roundup
uses https://issues.roundup-tracker.org/ with no 'tracker' designator,
so '.../tracker/' would just be 'https://issues.roundup-tracker.org/'.
If your URL was 'http://tracker.mycompany.com/product/', that would
replace '.../tracker/'.

What page are you trying to load?

  * an index page (e.g. .../tracker/issue)
  * an item page (e.g. .../tracker/issue1)
  * a search page (e.g. .../tracker/issue?@template=search)
  * the home page  (e.g. .../tracker/)

Can you try loading the status index page:

   .../tracker/status

or load an index page with only the issue titles:

   .../tracker/index?@columns=title

by editing the URL in your browser. Neither of these pages should have
date calculations (IIRC). If there is no traceback for these, it will
tell us that the basic machinery is working.

Do you get an error if you run:

  roundup-admin -i tracker/home/directory display issue1

where tracker/home/directory is the home directory for your tracker. (I
assume issue1 exists in the tracker. If you know an issue number you
can use it instead.)

>Here is the full traceback, what should I do?

It looks like there is some date calculation going on and the _value
is not a Date but a string. I have never seen this before.

From the traceback this looks like the result of calling reldate. In
the classic template this only happens for the activity or creation
date. Check your templates (probably just the issue templates) using
grep or other tool and see if reldate shows up anywhere else than in:

      tal:content="i/creation/reldate">&nbsp;</td>
      tal:content="i/activity/reldate">&nbsp;</td>

You may have tripped across some weird edge case here.  Some
comparisions/operations that were allowed in Python 2 are not allowed
in Python 3. If your tracker has some string field that it's trying to
interpret as a date, Python 2 may have ignored the failed subtraction
but Python 3 won't. I doubt that this is the cause but it's the first
thought.

>Full traceback:
>
>Traceback (most recent call last):
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/client.py", line 2021, in renderContext
>     result = pt.render(self, None, None, **args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/engine_zopetal.py", line 94, in render
>     tal=1, strictinsert=0)()
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 192, in __call__
>     self.interpret(self.program)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 571, in do_insertStructure_tal
>     structure = self.engine.evaluateStructure(expr)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/PageTemplates/TALES.py", line 224, in evaluate
>     return expression(self)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/PageTemplates/PythonExpr.py", line 91, in __call__
>     return f()
>   File "<string>", line 2, in f
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/templating.py", line 978, in renderWith
>     return pt.render(self._client, self.classname, req, **args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/engine_zopetal.py", line 94, in render
>     tal=1, strictinsert=0)()
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 192, in __call__
>     self.interpret(self.program)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 680, in do_useMacro
>     self.interpret(macro)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 413, in do_optTag_tal
>     self.do_optTag(stuff)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 398, in do_optTag
>     return self.no_tag(start, program)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 392, in no_tag
>     self.interpret(program)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 705, in do_defineSlot
>     self.interpret(slot)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 644, in do_condition
>     self.interpret(block)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 413, in do_optTag_tal
>     self.do_optTag(stuff)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 398, in do_optTag
>     return self.no_tag(start, program)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 392, in no_tag
>     self.interpret(program)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 644, in do_condition
>     self.interpret(block)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 617, in do_loop_tal
>     self.interpret(block)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 413, in do_optTag_tal
>     self.do_optTag(stuff)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 398, in do_optTag
>     return self.no_tag(start, program)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 392, in no_tag
>     self.interpret(program)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 644, in do_condition
>     self.interpret(block)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret
>     handlers[opcode](self, args)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/TAL/TALInterpreter.py", line 492, in do_insertText_tal
>     text = self.engine.evaluateText(stuff[0])
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/PageTemplates/TALES.py", line 230, in evaluateText
>     text = self.evaluate(expr)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/PageTemplates/TALES.py", line 224, in evaluate
>     return expression(self)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/PageTemplates/Expressions.py", line 198, in __call__
>     return self._eval(econtext)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/PageTemplates/Expressions.py", line 193, in _eval
>     return render(ob, econtext.vars)
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/PageTemplates/Expressions.py", line 99, in render
>     ob = ob()
>   File "/usr/local/lib/python3.7/dist-packages/roundup-2.2.0-py3.7.egg/roundup/cgi/templating.py", line 2241, in reldate
>     interval = self._value - date.Date('.', translator=self._client)
>TypeError: unsupported operand type(s) for -: 'str' and 'Date'

Have a good day.

--
				-- rouilj
John Rouillard
===========================================================================
My employers don't acknowledge my existence much less my opinions.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.