System.NullReferenceException at Orts.Simulation.Signalling.SignalObject.getBlockState_pathBased (X3874, KahLineOR, Новый сценарий)

Bug #1697312 reported by Victor
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Open Rails
Triaged
Undecided
Unassigned

Bug Description

Crash when an AI train clears a next block

Tags: crash signals
Revision history for this message
Victor (vitro) wrote :
Revision history for this message
Carlo Santucci (carlosanit1) wrote :

Hi Victor, please try release x.3875.

Revision history for this message
Victor (vitro) wrote :

Hi Carlo, thank you, there is no more crashes. Here is a new problem: AI train stops on waiting point, but "WTP" is not appearing in AI mode in Dispatcher Information and so waiting point never expires.

Revision history for this message
Carlo Santucci (carlosanit1) wrote :

Yes, I know that also this problem has been created with x.3863. X.3876 should have solved that. Pls. check. There could still be a timing problem (AI train slowed down more than usual at waiting points).

Revision history for this message
Victor (vitro) wrote :

I've checked X3876. Waiting points now operating properly. There is next problem in my activity. NORMAL signal before switch isn't cleared, until I dont occupy a block just in front of them. Here is some screenshots.

http://imgur.com/a/P7mLJ

1. The fifth signal doesn't open. Before STOP it should be three STOP_AND_PROCEEDs, then RESTRICTING, and so on.

2. By the way, I am driving a traffic service now. And if it was an AI, there train would stop on first STOP_AND_PROCEED by Approach Control function. We can do not slow down and so we ignore it and move directly to STOP.

3. Once we have passed last STOP_AND_PROCEED, the route are cleared further.

I understand that it is quite a not standart usage of signalling, but it was working on previous versions.

Revision history for this message
r.roeterdink (r-roeterdink) wrote :

It looks to me that signal 5 is the signal protecting the section which is still occupied by train 1 - see image.
It could be that the changes cause a slight difference in timing such that train 1 is now in a slightly different position as it used to be.
It does not look like a signal error to me.

Revision history for this message
Victor (vitro) wrote :

You're pointing to PLAYER service, but I have switched to Pzh1 service at this screenshot. The PLAYER is behind me, and after fifth signal there is nothing except switch

Revision history for this message
r.roeterdink (r-roeterdink) wrote :

You mention approach_control.
Do you use the approach control functions to switch between signal states other then STOP?
If so, that could explain what happens - if a signal uses an approach control function and the conditions are not met, the system will not clear any signals further on.
If that is what happens here, I would need to extend that logic by also testing the present state.
If that is indeed so, can you test it by removing the test for approach control?

Regards,
Rob Roeterdink

Revision history for this message
Victor (vitro) wrote :

I'm using approach control to change STOP_AND_PROCEED to STOP, until next block will be cleared. Is it able to clear the fifth block behind the train using signal variables for example?

Revision history for this message
r.roeterdink (r-roeterdink) wrote :

Are you using approach_control on the signal that remains at STOP?
If so, than the sequence is correct, as approach_control will not clear a signal until it is the first signal ahead of the train.
If you want to clear that last signal using approach_control if there are still other signals ahead of the train, try using approach_control_position_forced(distance) - this disregards other signals inbetween train and the actual signal.

Revision history for this message
Victor (vitro) wrote :

I'm using approach control to stop a train on STOP_AND_PROCEED. Not to clear.

James Ross (twpol)
summary: System.NullReferenceException at
- Orts.Simulation.Signalling.SignalObject.getBlockState_pathBased(TCSubpathRoute
- thisRoute, TrainRouted thisTrain) (X3874, own route)
+ Orts.Simulation.Signalling.SignalObject.getBlockState_pathBased (X3874,
+ own route)
Revision history for this message
Victor (vitro) wrote : Re: System.NullReferenceException at Orts.Simulation.Signalling.SignalObject.getBlockState_pathBased (X3874, own route)

I've removed the Approach_Control from these signals. Anyway, the fifth signal stays at STOP with only difference that signal clears after I passed first signal for me on that first screen.

James Ross (twpol)
tags: added: crash signals
James Ross (twpol)
summary: System.NullReferenceException at
Orts.Simulation.Signalling.SignalObject.getBlockState_pathBased (X3874,
- own route)
+ KahLineOR, Новый сценарий)
James Ross (twpol)
Changed in or:
status: New → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.