Houston4444 / RaySession

Session manager for linux musical programs
GNU General Public License v2.0
177 stars 20 forks source link

Places where drawLine can be called with floats instead of ints causing a crash #140

Closed dsheeler closed 2 years ago

dsheeler commented 2 years ago

I've hit the first of these in use, lately, but I don't know when the second one happns:

https://github.com/Houston4444/RaySession/blob/5be1c1159ca5ba04491150b14fd9e3c0fd7f19d1/src/gui/patchcanvas/canvasport.py#L907

https://github.com/Houston4444/RaySession/blob/5be1c1159ca5ba04491150b14fd9e3c0fd7f19d1/src/gui/patchcanvas/canvasbox.py#L1666

Houston4444 commented 2 years ago

ahh, that is due to python3.10. Ok, I fix it and I draft a new release (there was already another important bug).

Houston4444 commented 2 years ago

In the second one, it is impossible to have one of theses four values not being a float.

dsheeler commented 2 years ago

In the second one, it is impossible to have one of theses four values not being a float.

Is that supported though, in the drawLine interface? Seems like they all have to be ints?

dsheeler commented 2 years ago

Oh, if they're all floats that works? I just looked at your fix... I thought making them all ints was necessary.

dsheeler commented 2 years ago

So I just confirmed the crash still happens after pulling the most recent code. Here's the error:

Traceback (most recent call last):
  File "/usr/share/raysession/src/gui/patchcanvas/canvasport.py", line 907, in paint
    painter.drawLine(
TypeError: arguments did not match any overloaded call:
  drawLine(self, QLineF): argument 1 has unexpected type 'float'
  drawLine(self, QLine): argument 1 has unexpected type 'float'
  drawLine(self, int, int, int, int): argument 1 has unexpected type 'float'
  drawLine(self, QPoint, QPoint): argument 1 has unexpected type 'float'
  drawLine(self, Union[QPointF, QPoint], Union[QPointF, QPoint]): argument 1 has unexpected type 'float'
Aborted (core dumped)
dsheeler commented 2 years ago

I guess you could use two QPointFs?

Houston4444 commented 2 years ago

Oh, you are right, thanks. It should be fixed now, I used QPointFs of course

Stazed commented 2 years ago

After a recent upgrade on Manjaro - getting this error which may be related to this issue:

Python version: 3.10.1 Qt version: 5.15.2 PyQt version: 5.15.6

Traceback (most recent call last): File "/usr/local/share/raysession/src/daemon/session.py", line 2132, in load_substep4 self._wait_and_go_to(wait_time, self.load_substep5, ray.WaitFor.REPLY) File "/usr/local/share/raysession/src/daemon/session.py", line 789, in _wait_and_go_to self.timer.start(duration) TypeError: arguments did not match any overloaded call: start(self, int): argument 1 has unexpected type 'float' start(self): too many arguments

The error only occurs on certain projects. The projects load but RaySession becomes unresponsive and the "open" buttons flash indefinitely.

Using RaySession built from git on master which includes the 12/28/2021 fix related to this issue.

Houston4444 commented 2 years ago

arff, I was hoping that the daemon could not be affected because there is few Qt and no floats... but there are some floats.

It should be fixed with the last commit. Thanks

Stazed commented 2 years ago

Yes, it is working now. Thanks.