Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

Docking Queue - version 1.74.2

For test results, bug reports, announcements of new builds etc.

Moderators: winston, another_commander, Getafix

JD
Deadly
Deadly
Posts: 182
Joined: Thu Nov 25, 2010 10:42 pm
Location: London, UK

Docking Queue - version 1.74.2

Post by JD »

Hi,

Version 1.74.2 on Windows.

I've encountered what appears to be an intermittent bug with the docking queue. On 2 occasions I've arrived at a Coriolis station, requested docking clearance, and been told that there are inbound ships and I'm held in a queue. However, there are no ships on the sensor screen, and I never receive clearance. If I wait long enough, other ships may show up, but they appear to be behind me in the queue, as they also end up waiting.

If I cancel my docking request, the other ships then proceed to dock, but when I request clearance again, I'm once again placed in a queue behind this phantom inbound ship. On both occasions I've ended up refueling elsewhere in the system and hyperspacing out without visiting the main station. (I suppose I could have just docked anyway, but that could get expensive.)

Cheers
John
Switeck
---- E L I T E ----
---- E L I T E ----
Posts: 2411
Joined: Mon May 31, 2010 11:11 pm

Post by Switeck »

"On 2 occasions I've arrived at a Coriolis station, requested docking clearance"

Docking clearance is not required normally in Oolite.
So you're probably dealing with an OXP that does that.
So...What OXPs do you have installed? (and have you modified them in any way?)
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6580
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

Switeck wrote:
Docking clearance is not required normally in Oolite.
So you're probably dealing with an OXP that does that.
The only thing that the Docking Clearance OXP does is flip an internal game switch that activates the feature. Everything else is controlled by the core code. Still, it would be indeed a good idea to know what other OXPs are in the mix. This kind of bug is of the most irritating type: occurs once or twice in many attempts and when it comes up it is extremely difficult to track.
JD
Deadly
Deadly
Posts: 182
Joined: Thu Nov 25, 2010 10:42 pm
Location: London, UK

Post by JD »

Thanks for the prompt replies guys.

I switched on the docking clearance by setting this:

stations_require_docking_clearance = yes;

That entry is in a local copy of planetinfo.plist, in AddOns\Config. The only other entries in that file are for hyperspace_tunnel_color_1 & 2. (All edits done in Notepad++.)

Installed OXPs are:
  • buoyRepair1.02.6.oxp
    CombinedSounds.oxp
    Commies.oxp
    Dictators v1.4.oxp
    globestation2.0.oxp
    Griff_Debris_sets135_no_normal_map.oxp
    GrittyCoriolis.oxp
    Taxi_Galactica_Teaser.oxp
    tori.oxp
    transhab.oxp
    YOUR_AD_HERE.oxp + sets A-F
For what it's worth, the most recent problem occurred with one of Oolite's standard stations. I can't be sure now about the first occasion, but I think that was a standard station also.

Cheers
John
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

JD wrote:
For what it's worth, the most recent problem occurred with one of Oolite's standard stations. I can't be sure now about the first occasion, but I think that was a standard station also.

Cheers
John
When it happens again, target the station and press "shift-H". This will write an entity dump of the targeted ship/station to your current log. For a station, that log contains all ships on the docking cue and their distance to the station. This log might contain additional info about the cause.
It is most likely a ship that requested docking but than decided to do something else. e.g. it was attacked while docking and thus started fighting. DockingAI.plist explicit cancels docking before attacking, but the ship might use a custom docking routine.
When you can track down the ship, make a target entity dump of that one as well.

You can also make an entity dump of all ships, but that contains less useful info per ship than the target entity dump.

edit: rereading your oxp list, I don't think any of those contains ships with custom docking routines.
JD
Deadly
Deadly
Posts: 182
Joined: Thu Nov 25, 2010 10:42 pm
Location: London, UK

Post by JD »

Thanks Eric - will do.
User avatar
Micha
Commodore
Commodore
Posts: 815
Joined: Tue Sep 02, 2008 2:01 pm
Location: London, UK
Contact:

Post by Micha »

I have seen this happen once or twice as well, but haven't managed to track it down yet.

The core code -should- remove any ships which are too far away from the station (or no longer exist) from the docking queues.

If you can provide entity dumps as described above that will be useful.

Also, as long as you have docking computers, you can use those to dock normally - both using the slow version as well as instant-docking. Due to the way the docking system works internally, docking computers don't 'wait in line', nor do they delay other docking ships, they just randomly slot in.
The glass is twice as big as it needs to be.
JD
Deadly
Deadly
Posts: 182
Joined: Thu Nov 25, 2010 10:42 pm
Location: London, UK

Post by JD »

Thanks Micha.

I've so far stayed well clear of docking computers, as the ones on the BBC version of Elite used to be positively suicidal. Perhaps the technology has improved in the last 25 years though. I'll soldier on without for the moment, and see if I can provide more diagnostics if it happens again.

Cheers
John
User avatar
Micha
Commodore
Commodore
Posts: 815
Joined: Tue Sep 02, 2008 2:01 pm
Location: London, UK
Contact:

Post by Micha »

LOL. Not much they haven't. I can't recall them smashing me into a Coriolis, but they almost invariably cause me to crash on approach to a Rock Hermit.
Instant-docking is safe though.
The glass is twice as big as it needs to be.
User avatar
Commander McLane
---- E L I T E ----
---- E L I T E ----
Posts: 9520
Joined: Thu Dec 14, 2006 9:08 am
Location: a Hacker Outpost in a moderately remote area
Contact:

Post by Commander McLane »

Micha wrote:
Instant-docking is safe though.
... but takes 20 game-minutes.
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

Micha wrote:
I have seen this happen once or twice as well, but haven't managed to track it down yet.
I have another idea for the cause: dockingCorridorIsEmpty is false !

I had this several times with random_hits and tionisla_graveyard station. Both could in their original version add stuff to close to their docking lane.

For those stations it was not the problem of getting clearance, but I never noticed ships launches, while I knew there were ships on the launch queue. But clearance is only given when the launch queue is also empty when I am correct, so it could be the same cause. For above two oxps, the station script now removes all objects that were spawned to close to the station.

I just added a flag "dockingCorridorIsBusy" to the target-dump of a station entity for easier recognizing this situation. So when there is another clearance problem, look also at that value.
JD
Deadly
Deadly
Posts: 182
Joined: Thu Nov 25, 2010 10:42 pm
Location: London, UK

Post by JD »

Finally, it happened again, and I captured the entity dumps.

The offending ship on this occasion was an Imperial Quaestor, which had come to a halt about 22km from the station (on the opposite side to me, so out of my sensor range where I was parked).

If I'm not mistaken, the Imperial Quaestor is part of the Dictatorships oxp. However, I can't remember whether the previous occasions on which this has happened have also been in dictatorships, so I don't know whether it's the AI on these particular ships.

You'll see in the log below that I produced two entity dumps of the station - that was to check whether the queued ship was moving, before I set off to try and track it down.

[log.header]: Opening log for Oolite version 1.74.2 (x86-32 test release) under Windows at 2010-12-29 15:56:08 +0000.
8 processors detected.
Oolite options: procedural planet textures, docking clearance, wormhole scanner, target incoming missiles, spoken messages, JavaScript console support, OXP verifier, localization tools, debug GraphViz support.

Note that the contents of the log file can be adjusted by editing logcontrol.plist.

[joystickHandler.init]: Number of joysticks detected: 1
[display.mode.list.native]: Windows native resolution detected: 1920 x 1080
[searchPaths.dumpAll]: Unrestricted Mode - Resources paths:
Resources
../AddOns
../AddOns/AsteroidStorm 4.0.oxp
../AddOns/BGS-I1.3.2.oxp
../AddOns/buoyRepair1.02.6.oxp
../AddOns/captKev_dodo.oxp
../AddOns/CombinedSounds.oxp
../AddOns/Commies.oxp
../AddOns/Dictators v1.4.oxp
../AddOns/Generation Ships 1.1.oxp
../AddOns/globestation2.0.oxp
../AddOns/Griff_Debris_sets135_no_normal_map.oxp
../AddOns/griff_shipset_dizzy's_all_in_1.oxp
../AddOns/Lave.oxp
../AddOns/monument.oxp
../AddOns/PAGroove_Stations_v1.2.2.oxp
../AddOns/Pimp_my_ride-Cobra3.oxp
../AddOns/Shady_blackmonks.oxp
../AddOns/tgy_dev.oxp
../AddOns/Tianve1.3.oxp
../AddOns/Tori2.01.oxp
../AddOns/transhab.oxp
../AddOns/YOUR_AD_HERE.oxp
../AddOns/YOUR_AD_HERE_set_A.oxp
../AddOns/YOUR_AD_HERE_set_A416_upd.oxp
../AddOns/YOUR_AD_HERE_set_B.oxp
../AddOns/YOUR_AD_HERE_set_B416_upd.oxp
../AddOns/YOUR_AD_HERE_set_C.oxp
../AddOns/YOUR_AD_HERE_set_C416_upd.oxp
../AddOns/YOUR_AD_HERE_set_D.oxp
../AddOns/YOUR_AD_HERE_set_D416_upd.oxp
../AddOns/YOUR_AD_HERE_set_E.oxp
../AddOns/YOUR_AD_HERE_set_E416_upd.oxp
../AddOns/YOUR_AD_HERE_set_F.oxp
../AddOns/YOUR_AD_HERE_set_F416_upd.oxp
[rendering.opengl.version]: OpenGL renderer version: 4.1.0 ("4.1.0")
Vendor: NVIDIA Corporation
Renderer: GeForce GTX 460/PCI/SSE2
[rendering.opengl.extensions]: OpenGL extensions (221):
GL_ARB_draw_instanced, GL_NV_float_buffer, GL_NV_vertex_attrib_integer_64bit, GL_ARB_occlusion_query, GL_EXT_texture_env_add, GL_ARB_texture_env_dot3, GL_ARB_sync, GL_EXTX_framebuffer_mixed_formats, GL_ARB_texture_multisample, GL_NV_texture_env_combine4, GL_ARB_point_parameters, GL_ARB_vertex_array_object, GL_NVX_gpu_memory_info, GL_NV_vertex_buffer_unified_memory, GL_ARB_blend_func_extended, GL_NV_explicit_multisample, GL_EXT_provoking_vertex, GL_NV_texture_shader2, GL_EXT_blend_equation_separate, GL_NV_texture_shader3, GL_ARB_texture_non_power_of_two, GL_ARB_texture_mirrored_repeat, GL_EXT_multi_draw_arrays, GL_NV_fence, GL_ARB_timer_query, GL_ARB_texture_buffer_object, GL_NV_occlusion_query, GL_EXT_abgr, GL_ARB_vertex_program, GL_NV_shader_buffer_load, GL_ATI_texture_float, GL_ARB_draw_buffers_blend, GL_ARB_viewport_array, GL_KTX_buffer_region, GL_ARB_shadow, GL_NV_light_max_exponent, GL_EXT_texture_cube_map, GL_NV_texture_multisample, GL_NV_primitive_restart, GL_EXT_framebuffer_object, GL_EXT_texture_sRGB, GL_ARB_get_program_binary, GL_ARB_multitexture, GL_NV_half_float, GL_NV_copy_image, GL_NV_register_combiners, GL_EXT_texture_compression_rgtc, GL_ARB_shader_objects, GL_EXT_blend_func_separate, GL_EXT_bgra, GL_ARB_pixel_buffer_object, GL_ARB_vertex_attrib_64bit, GL_NV_fragment_program2, GL_EXT_Cg_shader, GL_ARB_draw_buffers, GL_EXT_separate_shader_objects, GL_NV_texgen_reflection, GL_ARB_texture_env_crossbar, GL_ARB_fragment_shader, GL_EXT_texture_swizzle, GL_EXT_fog_coord, GL_EXT_vertex_array_bgra, GL_EXT_framebuffer_blit, GL_NV_copy_depth_to_color, GL_ARB_texture_compression_rgtc, GL_ARB_sample_shading, GL_NV_vertex_program1_1, GL_ARB_seamless_cube_map, GL_WIN_swap_hint, GL_EXT_texture_shared_exponent, GL_ARB_shader_subroutine, GL_EXT_geometry_shader4, GL_EXT_direct_state_access, GL_EXT_compiled_vertex_array, GL_NV_parameter_buffer_object2, GL_NV_vertex_array_range2, GL_EXT_shader_image_load_store, GL_EXT_separate_specular_color, GL_ARB_vertex_type_2_10_10_10_rev, GL_EXT_vertex_array, GL_ARB_shading_language_100, GL_EXT_rescale_normal, GL_ARB_texture_float, GL_EXT_packed_depth_stencil, GL_EXT_bindable_uniform, GL_ARB_texture_swizzle, GL_ARB_half_float_pixel, GL_EXT_texture_compression_s3tc, GL_EXT_draw_instanced, GL_ARB_occlusion_query2, GL_NV_transform_feedback, GL_NV_texture_compression_vtc, GL_ARB_texture_rgb10_a2ui, GL_SGIS_texture_lod, WGL_EXT_swap_control, GL_ARB_geometry_shader4, GL_NV_point_sprite, GL_ARB_framebuffer_object, GL_NV_conditional_render, GL_EXT_stencil_two_side, GL_ARB_texture_rg, GL_NV_texture_expand_normal, GL_ARB_color_buffer_float, GL_NV_gpu_program4_1, GL_NV_framebuffer_multisample_coverage, GL_EXT_blend_color, GL_NV_packed_depth_stencil, GL_NV_geometry_shader4, GL_NV_texture_rectangle, GL_ARB_vertex_array_bgra, GL_EXT_texture_integer, GL_EXT_texture_array, GL_ARB_fragment_program_shadow, GL_NV_gpu_program4, GL_EXT_texture_buffer_object, GL_NV_vertex_program2_option, GL_NV_gpu_program5, GL_ARB_map_buffer_range, GL_ARB_fragment_program, GL_ARB_copy_buffer, GL_ARB_tessellation_shader, GL_NV_gpu_shader5, GL_S3_s3tc, GL_NV_depth_clamp, GL_EXT_texture_lod_bias, GL_EXT_texture_filter_anisotropic, GL_EXT_draw_buffers2, GL_NV_fragment_program, GL_EXT_secondary_color, GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, GL_EXT_framebuffer_multisample, GL_ARB_window_pos, GL_IBM_rasterpos_clip, GL_EXT_texture_env_combine, GL_ARB_vertex_shader, GL_ARB_texture_compression_bptc, GL_SGIS_generate_mipmap, GL_ARB_compatibility, GL_ATI_texture_mirror_once, GL_EXT_packed_float, GL_ARB_texture_border_clamp, GL_ARB_explicit_attrib_location, GL_NV_blend_square, GL_EXT_texture3D, GL_SUN_slice_accum, GL_NV_vertex_array_range, GL_ARB_ES2_compatibility, GL_NV_vertex_program, GL_ARB_texture_query_lod, GL_NV_multisample_filter_hint, GL_EXT_texture_mirror_clamp, GL_ARB_texture_compression, GL_NV_vertex_program2, GL_NV_multisample_coverage, GL_ARB_texture_env_add, GL_ARB_imaging, GL_NV_vertex_program3, GL_ARB_provoking_vertex, GL_EXT_gpu_shader4, GL_ARB_texture_rectangle, GL_EXT_texture_edge_clamp, GL_NV_transform_feedback2, GL_ARB_draw_elements_base_vertex, GL_ARB_fragment_coord_conventions, GL_ARB_separate_shader_objects, GL_SGIX_shadow, GL_ARB_texture_cube_map, GL_EXT_transform_feedback2, GL_EXT_framebuffer_sRGB, GL_NV_fragment_program_option, GL_EXT_texture_compression_latc, GL_ARB_robustness, GL_ARB_point_sprite, GL_ARB_texture_gather, GL_ARB_texture_buffer_object_rgb32, GL_NV_depth_buffer_float, GL_ARB_depth_texture, GL_EXT_texture_object, GL_EXT_depth_bounds_test, GL_NV_fog_distance, GL_ARB_instanced_arrays, GL_EXT_blend_minmax, GL_SGIX_depth_texture, GL_ATI_draw_buffers, GL_ARB_framebuffer_sRGB, GL_EXT_blend_subtract, GL_NV_register_combiners2, GL_EXT_packed_pixels, GL_IBM_texture_mirrored_repeat, GL_NV_texture_shader, GL_EXT_draw_range_elements, GL_ARB_texture_cube_map_array, GL_ARB_sampler_objects, GL_ARB_half_float_vertex, GL_ARB_shader_precision, GL_ARB_gpu_shader5, GL_ARB_depth_clamp, GL_ARB_transpose_matrix, GL_NV_parameter_buffer_object, GL_ARB_vertex_buffer_object, GL_ARB_draw_indirect, GL_EXT_pixel_buffer_object, GL_EXT_vertex_attrib_64bit, GL_NVX_conditional_render, GL_ARB_texture_env_combine, GL_ARB_shader_bit_encoding, GL_EXT_timer_query, GL_EXT_gpu_program_parameters, GL_ARB_uniform_buffer_object, GL_ARB_multisample, GL_EXT_texture_env_dot3, GL_EXT_shadow_funcs, GL_EXT_texture_lod, GL_ARB_depth_buffer_float, GL_NV_pixel_data_range, GL_ARB_gpu_shader_fp64, GL_EXT_stencil_wrap, GL_EXT_point_parameters, GL_NV_texture_barrier, GL_NV_gpu_program_fp64
[rendering.opengl.shader.support]: Shaders are supported.
[rendering.opengl.shader.mode]: Shader mode set to SHADERS_FULL.
[script.load.world.listAll]: Loaded 14 world scripts:
AsteroidStorm 4.00
black_monks
buoyRepair 1.02.6
communist_population 2.11
dictators.js 1.0
elite_monument
Generation Ships 1.1
oolite-cloaking-device 1.74.2
oolite-constrictor-hunt 1.74.2
oolite-nova 1.74.2
oolite-thargoid-plans 1.74.2
oolite-tianve 1.3
oolite-trumbles 1.74.2
Pi-Forty-Two Con stores 4.1.6
[loading.complete]: ========== Loading complete. ==========
[script.load.world.listAll]: Loaded 14 world scripts:
AsteroidStorm 4.00
black_monks
buoyRepair 1.02.6
communist_population 2.11
dictators.js 1.0
elite_monument
Generation Ships 1.1
oolite-cloaking-device 1.74.2
oolite-constrictor-hunt 1.74.2
oolite-nova 1.74.2
oolite-thargoid-plans 1.74.2
oolite-tianve 1.3
oolite-trumbles 1.74.2
Pi-Forty-Two Con stores 4.1.6
[script.load.world.listAll]: Loaded 14 world scripts:
AsteroidStorm 4.00
black_monks
buoyRepair 1.02.6
communist_population 2.11
dictators.js 1.0
elite_monument
Generation Ships 1.1
oolite-cloaking-device 1.74.2
oolite-constrictor-hunt 1.74.2
oolite-nova 1.74.2
oolite-thargoid-plans 1.74.2
oolite-tianve 1.3
oolite-trumbles 1.74.2
Pi-Forty-Two Con stores 4.1.6
[script.load.world.listAll]: Loaded 14 world scripts:
AsteroidStorm 4.00
black_monks
buoyRepair 1.02.6
communist_population 2.11
dictators.js 1.0
elite_monument
Generation Ships 1.1
oolite-cloaking-device 1.74.2
oolite-constrictor-hunt 1.74.2
oolite-nova 1.74.2
oolite-thargoid-plans 1.74.2
oolite-tianve 1.3
oolite-trumbles 1.74.2
Pi-Forty-Two Con stores 4.1.6
[script.load.world.listAll]: Loaded 14 world scripts:
AsteroidStorm 4.00
black_monks
buoyRepair 1.02.6
communist_population 2.11
dictators.js 1.0
elite_monument
Generation Ships 1.1
oolite-cloaking-device 1.74.2
oolite-constrictor-hunt 1.74.2
oolite-nova 1.74.2
oolite-thargoid-plans 1.74.2
oolite-tianve 1.3
oolite-trumbles 1.74.2
Pi-Forty-Two Con stores 4.1.6
[script.load.world.listAll]: Loaded 14 world scripts:
AsteroidStorm 4.00
black_monks
buoyRepair 1.02.6
communist_population 2.11
dictators.js 1.0
elite_monument
Generation Ships 1.1
oolite-cloaking-device 1.74.2
oolite-constrictor-hunt 1.74.2
oolite-nova 1.74.2
oolite-thargoid-plans 1.74.2
oolite-tianve 1.3
oolite-trumbles 1.74.2
Pi-Forty-Two Con stores 4.1.6
[script.load.world.listAll]: Loaded 14 world scripts:
AsteroidStorm 4.00
black_monks
buoyRepair 1.02.6
communist_population 2.11
dictators.js 1.0
elite_monument
Generation Ships 1.1
oolite-cloaking-device 1.74.2
oolite-constrictor-hunt 1.74.2
oolite-nova 1.74.2
oolite-thargoid-plans 1.74.2
oolite-tianve 1.3
oolite-trumbles 1.74.2
Pi-Forty-Two Con stores 4.1.6
[dumpState]: State for <StationEntity 0xae0d260>{"Coriolis Station" "Coriolis Station" position: (36269.1, 55558.9, 325048) scanClass: CLASS_STATION status: STATUS_ACTIVE}:
[dumpState.entity]: Universal ID: 1288
[dumpState.entity]: Scan class: CLASS_STATION
[dumpState.entity]: Status: STATUS_ACTIVE
[dumpState.entity]: Position: (36269.1, 55558.9, 325048)
[dumpState.entity]: Orientation: (-0.518487 + 0.609502i + 0.162547j - 0.577284k)
[dumpState.entity]: Distance travelled: 0
[dumpState.entity]: Energy: 25000 of 25000
[dumpState.entity]: Mass: 2.56599e+008
[dumpState.entity]: Owner: <StationEntity 0xae0d260>{"Coriolis Station" "Coriolis Station" position: (36269.1, 55558.9, 325048) scanClass: CLASS_STATION status: STATUS_ACTIVE}
[dumpState.entity]: Flags: isShip, isStation, hasRotated, isSunlit, collisionTestFilter
[dumpState.shipEntity]: Type: griff_normalmapped_coriolis
[dumpState.shipEntity]: Name: Coriolis Station
[dumpState.shipEntity]: Display Name: Coriolis Station
[dumpState.shipEntity]: Roles: <OORoleSet 0x11650150>{coriolis station}
[dumpState.shipEntity]: Primary role: coriolis
[dumpState.shipEntity]: Script: <OOJSScript 0x1a039ad8>{"oolite-default-ship-script" version 1.74.2}
[dumpState.shipEntity]: Subentity count: 2
[dumpState.shipEntity]: Behaviour: BEHAVIOUR_IDLE
[dumpState.shipEntity]: Destination: (0, 0, 0)
[dumpState.shipEntity]: Other destination: (0, 0, 0)
[dumpState.shipEntity]: Waypoint count: 0
[dumpState.shipEntity]: Desired speed: 0
[dumpState.shipEntity]: Thrust: 100
[dumpState.shipEntity]: Fuel: 0
[dumpState.shipEntity]: Fuel accumulator: 1
[dumpState.shipEntity]: Missile count: 0
[dumpState.shipEntity.ai]: AI:
[dumpState.ai]: State machine name: stationAI.plist
[dumpState.ai]: Current state: IDLE
[dumpState.ai]: Next think time: 7285.64
[dumpState.ai]: Next think interval: 0.125
[dumpState.shipEntity]: Frustration: 0
[dumpState.shipEntity]: Success factor: 0
[dumpState.shipEntity]: Shots fired: 0
[dumpState.shipEntity]: Time since shot: 102866
[dumpState.shipEntity]: Spawn time: 4888.16 (2392.7 seconds ago)
[dumpState.shipEntity]: Hull temperature: 60
[dumpState.shipEntity]: Heat insulation: 1
[dumpState.shipEntity]: Flags: canFragment
[dumpState.stationEntity]: Alert level: green
[dumpState.stationEntity]: Max police: 8
[dumpState.stationEntity]: Max defense ships: 3
[dumpState.stationEntity]: Defenders launched: 5
[dumpState.stationEntity]: Max scavengers: 3
[dumpState.stationEntity]: Scavengers launched: 0
[dumpState.stationEntity]: Docked shuttles: 1
[dumpState.stationEntity]: Docked traders: 6
[dumpState.stationEntity]: Equivalent tech level: 10
[dumpState.stationEntity]: Equipment price factor: 1
[dumpState.stationEntity]: Flags: rotatingStation
[dumpState.stationEntity]: 1 Ships on approach (unsorted):
[dumpState.stationEntity]: Nr 1: Imperial Quaestor at distance 22001.5 with role: police
[dumpState]: State for <StationEntity 0xae0d260>{"Coriolis Station" "Coriolis Station" position: (36269.1, 55558.9, 325048) scanClass: CLASS_STATION status: STATUS_ACTIVE}:
[dumpState.entity]: Universal ID: 1288
[dumpState.entity]: Scan class: CLASS_STATION
[dumpState.entity]: Status: STATUS_ACTIVE
[dumpState.entity]: Position: (36269.1, 55558.9, 325048)
[dumpState.entity]: Orientation: (0.616478 - 0.210241i + 0.594744j - 0.471204k)
[dumpState.entity]: Distance travelled: 0
[dumpState.entity]: Energy: 25000 of 25000
[dumpState.entity]: Mass: 2.56599e+008
[dumpState.entity]: Owner: <StationEntity 0xae0d260>{"Coriolis Station" "Coriolis Station" position: (36269.1, 55558.9, 325048) scanClass: CLASS_STATION status: STATUS_ACTIVE}
[dumpState.entity]: Flags: isShip, isStation, hasRotated, isSunlit, collisionTestFilter
[dumpState.shipEntity]: Type: griff_normalmapped_coriolis
[dumpState.shipEntity]: Name: Coriolis Station
[dumpState.shipEntity]: Display Name: Coriolis Station
[dumpState.shipEntity]: Roles: <OORoleSet 0x11650150>{coriolis station}
[dumpState.shipEntity]: Primary role: coriolis
[dumpState.shipEntity]: Script: <OOJSScript 0x1a039ad8>{"oolite-default-ship-script" version 1.74.2}
[dumpState.shipEntity]: Subentity count: 2
[dumpState.shipEntity]: Behaviour: BEHAVIOUR_IDLE
[dumpState.shipEntity]: Destination: (0, 0, 0)
[dumpState.shipEntity]: Other destination: (0, 0, 0)
[dumpState.shipEntity]: Waypoint count: 0
[dumpState.shipEntity]: Desired speed: 0
[dumpState.shipEntity]: Thrust: 100
[dumpState.shipEntity]: Fuel: 0
[dumpState.shipEntity]: Fuel accumulator: 1
[dumpState.shipEntity]: Missile count: 0
[dumpState.shipEntity.ai]: AI:
[dumpState.ai]: State machine name: stationAI.plist
[dumpState.ai]: Current state: IDLE
[dumpState.ai]: Next think time: 7406.52
[dumpState.ai]: Next think interval: 0.125
[dumpState.shipEntity]: Frustration: 0
[dumpState.shipEntity]: Success factor: 0
[dumpState.shipEntity]: Shots fired: 0
[dumpState.shipEntity]: Time since shot: 102981
[dumpState.shipEntity]: Spawn time: 4888.16 (2507.44 seconds ago)
[dumpState.shipEntity]: Hull temperature: 60
[dumpState.shipEntity]: Heat insulation: 1
[dumpState.shipEntity]: Flags: canFragment
[dumpState.stationEntity]: Alert level: green
[dumpState.stationEntity]: Max police: 8
[dumpState.stationEntity]: Max defense ships: 3
[dumpState.stationEntity]: Defenders launched: 5
[dumpState.stationEntity]: Max scavengers: 3
[dumpState.stationEntity]: Scavengers launched: 0
[dumpState.stationEntity]: Docked shuttles: 1
[dumpState.stationEntity]: Docked traders: 5
[dumpState.stationEntity]: Equivalent tech level: 10
[dumpState.stationEntity]: Equipment price factor: 1
[dumpState.stationEntity]: Flags: rotatingStation
[dumpState.stationEntity]: 1 Ships on approach (unsorted):
[dumpState.stationEntity]: Nr 1: Imperial Quaestor at distance 22001.5 with role: police
[dumpState]: State for <ShipEntity 0x1185fa48>{"Imperial Quaestor" position: (34607.1, 74945.6, 314778) scanClass: CLASS_POLICE status: STATUS_IN_FLIGHT}:
[dumpState.entity]: Universal ID: 1400
[dumpState.entity]: Scan class: CLASS_POLICE
[dumpState.entity]: Status: STATUS_IN_FLIGHT
[dumpState.entity]: Position: (34607.1, 74945.6, 314778)
[dumpState.entity]: Orientation: (0.729956 - 0.392965i - 0.324767j + 0.455268k)
[dumpState.entity]: Distance travelled: 180108
[dumpState.entity]: Energy: 300 of 300
[dumpState.entity]: Mass: 38614.1
[dumpState.entity]: Owner: <ShipEntity 0x1185fa48>{"Imperial Quaestor" position: (34607.1, 74945.6, 314778) scanClass: CLASS_POLICE status: STATUS_IN_FLIGHT}
[dumpState.entity]: Flags: isShip, isSunlit, collisionTestFilter
[dumpState.shipEntity]: Type: quaestor
[dumpState.shipEntity]: Name: Imperial Quaestor
[dumpState.shipEntity]: Display Name: Imperial Quaestor
[dumpState.shipEntity]: Roles: <OORoleSet 0x11f7ea40>{police quaestor}
[dumpState.shipEntity]: Primary role: police
[dumpState.shipEntity]: Script: <OOJSScript 0x1240e518>{"oolite-default-ship-script" version 1.74.2}
[dumpState.shipEntity]: Subentity count: 1
[dumpState.shipEntity]: Behaviour: BEHAVIOUR_FLY_TO_DESTINATION
[dumpState.shipEntity]: Target: <StationEntity 0xae0d260>{"Coriolis Station" "Coriolis Station" position: (36269.1, 55558.9, 325048) scanClass: CLASS_STATION status: STATUS_ACTIVE}
[dumpState.shipEntity]: Destination: (36269.1, 55558.9, 325048)
[dumpState.shipEntity]: Other destination: (36474.1, 52147.2, 324862)
[dumpState.shipEntity]: Waypoint count: 0
[dumpState.shipEntity]: Desired speed: 0
[dumpState.shipEntity]: Thrust: 35
[dumpState.shipEntity]: Fuel: 80
[dumpState.shipEntity]: Fuel accumulator: 1
[dumpState.shipEntity]: Missile count: 4
[dumpState.shipEntity.ai]: AI:
[dumpState.ai]: State machine name: dockingAI.plist
[dumpState.ai]: Current state: GO_TO_COORDS
[dumpState.ai]: Next think time: 7493.61
[dumpState.ai]: Next think interval: 0.125
[dumpState.shipEntity]: Frustration: 5.534
[dumpState.shipEntity]: Success factor: 22001.5
[dumpState.shipEntity]: Shots fired: 0
[dumpState.shipEntity]: Time since shot: 102599
[dumpState.shipEntity]: Spawn time: 4888.41 (2605.18 seconds ago)
[dumpState.shipEntity]: Hull temperature: 60
[dumpState.shipEntity]: Heat insulation: 1
[dumpState.shipEntity]: Flags: isFrangible, canFragment
[gameController.exitApp]: .GNUstepDefaults synchronized.

Closing log at 2010-12-29 19:28:36 +0000.

Cheers
John
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

Micha wrote:
I have seen this happen once or twice as well, but haven't managed to track it down yet.

The core code -should- remove any ships which are too far away from the station (or no longer exist) from the docking queues.
Maybe I got a clue today. In the course of some other testing I added quite a lot planetPatrol ships. After leaving the computer alone for some time I found 3 ships hanging in a loop:

Code: Select all

[ai.message.receive] AI.m:455: AI dockingAI.plist for GalCop Viper Interceptor 346 in state 'GO_TO_COORDS' receives message 'FRUSTRATED'. Context: BEHAVIOUR_FLY_TO_DESTINATION, stack depth: 0
[ai.takeAction] AI.m:519: GalCop Viper Interceptor 346 to take action performFaceDestination
[ai.message.receive] AI.m:455: AI dockingAI.plist for GalCop Viper Interceptor 346 in state 'GO_TO_COORDS' receives message 'FACING_DESTINATION'. Context: handling deferred message, stack depth: 0
[ai.takeAction] AI.m:519: GalCop Viper Interceptor 346 to take action recallDockingInstructions
[ai.takeAction] AI.m:519: GalCop Viper Interceptor 346 to take action performFlyToRangeFromDestination
[ai.message.receive] AI.m:455: AI dockingAI.plist for GalCop Viper Interceptor 346 in state 'GO_TO_COORDS' receives message 'FRUSTRATED'. Context: BEHAVIOUR_FLY_TO_DESTINATION, stack depth: 0
Looking at the desired speed of the ships I noticed that it was zero. That explains why the ships did not fly on "performFlyToRangeFromDestination" and got frustrated. But "recallDockingInstructions" should always set a speed > 0 when there are instructions. A entity dump of the station showed:

Code: Select all

  [dumpState.stationEntity] StationEntity.m:2341: 3 Ships on approach (unsorted):
  [dumpState.stationEntity] StationEntity.m:2350: Nr 1: GalCop Viper at distance 24129.9 with role: police
  [dumpState.stationEntity] StationEntity.m:2350: Nr 2: GalCop Viper at distance 24784.1 with role: police
  [dumpState.stationEntity] StationEntity.m:2350: Nr 3: GalCop Viper Interceptor at distance 24339.8 with role: police
The 3 ships were on the approach list. Those patrol ships fly to distances at 25000 meter around the station, therefor, the distances being about scanner range might just be a coincidence.

It looks like that the ships went through the whole waypoint list without actually going there. I'll going to add an error message at two points that could be responsible for this. And at the same time sending a "DOCKING_ABORTED" to the AI in the hope that a restart might fix things. Although that would not fix any underlying problem, only would it confirm that this might be the right direction for this bug.

EDIT: Its not the same problem as these far ships don't lock up the docking queue. Still I don't see why the "recallDockingInstructions" command does not trigger an AI message. It should always do for ships on the approach list.
JD
Deadly
Deadly
Posts: 182
Joined: Thu Nov 25, 2010 10:42 pm
Location: London, UK

Post by JD »

You wait all that time for a bus and then two come along at once. This time it happened in a democratic system, and once again the queued ship had a police role. It was a GalCop Viper Interceptor on this occasion, and had come to a halt on the far side of the station, 21.2km away.

Code: Select all

[log.header]: Opening log for Oolite version 1.74.2 (x86-32 test release) under Windows at 2010-12-30 11:33:41 +0000.
8 processors detected.
Oolite options: procedural planet textures, docking clearance, wormhole scanner, target incoming missiles, spoken messages, JavaScript console support, OXP verifier, localization tools, debug GraphViz support.

Note that the contents of the log file can be adjusted by editing logcontrol.plist.

[joystickHandler.init]: Number of joysticks detected: 1
[display.mode.list.native]: Windows native resolution detected: 1920 x 1080
[searchPaths.dumpAll]: Unrestricted Mode - Resources paths:
    Resources
    ../AddOns
    ../AddOns/AsteroidStorm 4.0.oxp
    ../AddOns/BGS-I1.3.2.oxp
    ../AddOns/buoyRepair1.02.6.oxp
    ../AddOns/captKev_dodo.oxp
    ../AddOns/CombinedSounds.oxp
    ../AddOns/Commies.oxp
    ../AddOns/Dictators v1.4.oxp
    ../AddOns/Generation Ships 1.1.oxp
    ../AddOns/globestation2.0.oxp
    ../AddOns/Griff_Debris_sets135_no_normal_map.oxp
    ../AddOns/griff_shipset_dizzy's_all_in_1.oxp
    ../AddOns/Lave.oxp
    ../AddOns/monument.oxp
    ../AddOns/PAGroove_Stations_v1.2.2.oxp
    ../AddOns/Pimp_my_ride-Cobra3.oxp
    ../AddOns/Shady_blackmonks.oxp
    ../AddOns/tgy_dev.oxp
    ../AddOns/Tianve1.3.oxp
    ../AddOns/Tori2.01.oxp
    ../AddOns/transhab.oxp
    ../AddOns/YOUR_AD_HERE.oxp
    ../AddOns/YOUR_AD_HERE_set_A.oxp
    ../AddOns/YOUR_AD_HERE_set_A416_upd.oxp
    ../AddOns/YOUR_AD_HERE_set_B.oxp
    ../AddOns/YOUR_AD_HERE_set_B416_upd.oxp
    ../AddOns/YOUR_AD_HERE_set_C.oxp
    ../AddOns/YOUR_AD_HERE_set_C416_upd.oxp
    ../AddOns/YOUR_AD_HERE_set_D.oxp
    ../AddOns/YOUR_AD_HERE_set_D416_upd.oxp
    ../AddOns/YOUR_AD_HERE_set_E.oxp
    ../AddOns/YOUR_AD_HERE_set_E416_upd.oxp
    ../AddOns/YOUR_AD_HERE_set_F.oxp
    ../AddOns/YOUR_AD_HERE_set_F416_upd.oxp
[rendering.opengl.version]: OpenGL renderer version: 4.1.0 ("4.1.0")
Vendor: NVIDIA Corporation
Renderer: GeForce GTX 460/PCI/SSE2
[rendering.opengl.extensions]: OpenGL extensions (221):
GL_ARB_draw_instanced, GL_NV_float_buffer, GL_NV_vertex_attrib_integer_64bit, GL_ARB_occlusion_query, GL_EXT_texture_env_add, GL_ARB_texture_env_dot3, GL_ARB_sync, GL_EXTX_framebuffer_mixed_formats, GL_ARB_texture_multisample, GL_NV_texture_env_combine4, GL_ARB_point_parameters, GL_ARB_vertex_array_object, GL_NVX_gpu_memory_info, GL_NV_vertex_buffer_unified_memory, GL_ARB_blend_func_extended, GL_NV_explicit_multisample, GL_EXT_provoking_vertex, GL_NV_texture_shader2, GL_EXT_blend_equation_separate, GL_NV_texture_shader3, GL_ARB_texture_non_power_of_two, GL_ARB_texture_mirrored_repeat, GL_EXT_multi_draw_arrays, GL_NV_fence, GL_ARB_timer_query, GL_ARB_texture_buffer_object, GL_NV_occlusion_query, GL_EXT_abgr, GL_ARB_vertex_program, GL_NV_shader_buffer_load, GL_ATI_texture_float, GL_ARB_draw_buffers_blend, GL_ARB_viewport_array, GL_KTX_buffer_region, GL_ARB_shadow, GL_NV_light_max_exponent, GL_EXT_texture_cube_map, GL_NV_texture_multisample, GL_NV_primitive_restart, GL_EXT_framebuffer_object, GL_EXT_texture_sRGB, GL_ARB_get_program_binary, GL_ARB_multitexture, GL_NV_half_float, GL_NV_copy_image, GL_NV_register_combiners, GL_EXT_texture_compression_rgtc, GL_ARB_shader_objects, GL_EXT_blend_func_separate, GL_EXT_bgra, GL_ARB_pixel_buffer_object, GL_ARB_vertex_attrib_64bit, GL_NV_fragment_program2, GL_EXT_Cg_shader, GL_ARB_draw_buffers, GL_EXT_separate_shader_objects, GL_NV_texgen_reflection, GL_ARB_texture_env_crossbar, GL_ARB_fragment_shader, GL_EXT_texture_swizzle, GL_EXT_fog_coord, GL_EXT_vertex_array_bgra, GL_EXT_framebuffer_blit, GL_NV_copy_depth_to_color, GL_ARB_texture_compression_rgtc, GL_ARB_sample_shading, GL_NV_vertex_program1_1, GL_ARB_seamless_cube_map, GL_WIN_swap_hint, GL_EXT_texture_shared_exponent, GL_ARB_shader_subroutine, GL_EXT_geometry_shader4, GL_EXT_direct_state_access, GL_EXT_compiled_vertex_array, GL_NV_parameter_buffer_object2, GL_NV_vertex_array_range2, GL_EXT_shader_image_load_store, GL_EXT_separate_specular_color, GL_ARB_vertex_type_2_10_10_10_rev, GL_EXT_vertex_array, GL_ARB_shading_language_100, GL_EXT_rescale_normal, GL_ARB_texture_float, GL_EXT_packed_depth_stencil, GL_EXT_bindable_uniform, GL_ARB_texture_swizzle, GL_ARB_half_float_pixel, GL_EXT_texture_compression_s3tc, GL_EXT_draw_instanced, GL_ARB_occlusion_query2, GL_NV_transform_feedback, GL_NV_texture_compression_vtc, GL_ARB_texture_rgb10_a2ui, GL_SGIS_texture_lod, WGL_EXT_swap_control, GL_ARB_geometry_shader4, GL_NV_point_sprite, GL_ARB_framebuffer_object, GL_NV_conditional_render, GL_EXT_stencil_two_side, GL_ARB_texture_rg, GL_NV_texture_expand_normal, GL_ARB_color_buffer_float, GL_NV_gpu_program4_1, GL_NV_framebuffer_multisample_coverage, GL_EXT_blend_color, GL_NV_packed_depth_stencil, GL_NV_geometry_shader4, GL_NV_texture_rectangle, GL_ARB_vertex_array_bgra, GL_EXT_texture_integer, GL_EXT_texture_array, GL_ARB_fragment_program_shadow, GL_NV_gpu_program4, GL_EXT_texture_buffer_object, GL_NV_vertex_program2_option, GL_NV_gpu_program5, GL_ARB_map_buffer_range, GL_ARB_fragment_program, GL_ARB_copy_buffer, GL_ARB_tessellation_shader, GL_NV_gpu_shader5, GL_S3_s3tc, GL_NV_depth_clamp, GL_EXT_texture_lod_bias, GL_EXT_texture_filter_anisotropic, GL_EXT_draw_buffers2, GL_NV_fragment_program, GL_EXT_secondary_color, GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, GL_EXT_framebuffer_multisample, GL_ARB_window_pos, GL_IBM_rasterpos_clip, GL_EXT_texture_env_combine, GL_ARB_vertex_shader, GL_ARB_texture_compression_bptc, GL_SGIS_generate_mipmap, GL_ARB_compatibility, GL_ATI_texture_mirror_once, GL_EXT_packed_float, GL_ARB_texture_border_clamp, GL_ARB_explicit_attrib_location, GL_NV_blend_square, GL_EXT_texture3D, GL_SUN_slice_accum, GL_NV_vertex_array_range, GL_ARB_ES2_compatibility, GL_NV_vertex_program, GL_ARB_texture_query_lod, GL_NV_multisample_filter_hint, GL_EXT_texture_mirror_clamp, GL_ARB_texture_compression, GL_NV_vertex_program2, GL_NV_multisample_coverage, GL_ARB_texture_env_add, GL_ARB_imaging, GL_NV_vertex_program3, GL_ARB_provoking_vertex, GL_EXT_gpu_shader4, GL_ARB_texture_rectangle, GL_EXT_texture_edge_clamp, GL_NV_transform_feedback2, GL_ARB_draw_elements_base_vertex, GL_ARB_fragment_coord_conventions, GL_ARB_separate_shader_objects, GL_SGIX_shadow, GL_ARB_texture_cube_map, GL_EXT_transform_feedback2, GL_EXT_framebuffer_sRGB, GL_NV_fragment_program_option, GL_EXT_texture_compression_latc, GL_ARB_robustness, GL_ARB_point_sprite, GL_ARB_texture_gather, GL_ARB_texture_buffer_object_rgb32, GL_NV_depth_buffer_float, GL_ARB_depth_texture, GL_EXT_texture_object, GL_EXT_depth_bounds_test, GL_NV_fog_distance, GL_ARB_instanced_arrays, GL_EXT_blend_minmax, GL_SGIX_depth_texture, GL_ATI_draw_buffers, GL_ARB_framebuffer_sRGB, GL_EXT_blend_subtract, GL_NV_register_combiners2, GL_EXT_packed_pixels, GL_IBM_texture_mirrored_repeat, GL_NV_texture_shader, GL_EXT_draw_range_elements, GL_ARB_texture_cube_map_array, GL_ARB_sampler_objects, GL_ARB_half_float_vertex, GL_ARB_shader_precision, GL_ARB_gpu_shader5, GL_ARB_depth_clamp, GL_ARB_transpose_matrix, GL_NV_parameter_buffer_object, GL_ARB_vertex_buffer_object, GL_ARB_draw_indirect, GL_EXT_pixel_buffer_object, GL_EXT_vertex_attrib_64bit, GL_NVX_conditional_render, GL_ARB_texture_env_combine, GL_ARB_shader_bit_encoding, GL_EXT_timer_query, GL_EXT_gpu_program_parameters, GL_ARB_uniform_buffer_object, GL_ARB_multisample, GL_EXT_texture_env_dot3, GL_EXT_shadow_funcs, GL_EXT_texture_lod, GL_ARB_depth_buffer_float, GL_NV_pixel_data_range, GL_ARB_gpu_shader_fp64, GL_EXT_stencil_wrap, GL_EXT_point_parameters, GL_NV_texture_barrier, GL_NV_gpu_program_fp64
[rendering.opengl.shader.support]: Shaders are supported.
[rendering.opengl.shader.mode]: Shader mode set to SHADERS_FULL.
[script.load.world.listAll]: Loaded 14 world scripts:
    AsteroidStorm 4.00
    black_monks
    buoyRepair 1.02.6
    communist_population 2.11
    dictators.js 1.0
    elite_monument
    Generation Ships 1.1
    oolite-cloaking-device 1.74.2
    oolite-constrictor-hunt 1.74.2
    oolite-nova 1.74.2
    oolite-thargoid-plans 1.74.2
    oolite-tianve 1.3
    oolite-trumbles 1.74.2
    Pi-Forty-Two Con stores 4.1.6
[loading.complete]: ========== Loading complete. ==========
[script.load.world.listAll]: Loaded 14 world scripts:
    AsteroidStorm 4.00
    black_monks
    buoyRepair 1.02.6
    communist_population 2.11
    dictators.js 1.0
    elite_monument
    Generation Ships 1.1
    oolite-cloaking-device 1.74.2
    oolite-constrictor-hunt 1.74.2
    oolite-nova 1.74.2
    oolite-thargoid-plans 1.74.2
    oolite-tianve 1.3
    oolite-trumbles 1.74.2
    Pi-Forty-Two Con stores 4.1.6
[script.load.world.listAll]: Loaded 14 world scripts:
    AsteroidStorm 4.00
    black_monks
    buoyRepair 1.02.6
    communist_population 2.11
    dictators.js 1.0
    elite_monument
    Generation Ships 1.1
    oolite-cloaking-device 1.74.2
    oolite-constrictor-hunt 1.74.2
    oolite-nova 1.74.2
    oolite-thargoid-plans 1.74.2
    oolite-tianve 1.3
    oolite-trumbles 1.74.2
    Pi-Forty-Two Con stores 4.1.6
[dumpState]: State for <StationEntity 0x121978b0>{"Coriolis Station" "Coriolis Station" position: (-38261.9, 35491.5, 319220) scanClass: CLASS_STATION status: STATUS_ACTIVE}:
  [dumpState.entity]: Universal ID: 192
  [dumpState.entity]: Scan class: CLASS_STATION
  [dumpState.entity]: Status: STATUS_ACTIVE
  [dumpState.entity]: Position: (-38261.9, 35491.5, 319220)
  [dumpState.entity]: Orientation: (0.753141 - 0.15871i - 0.522653j + 0.366638k)
  [dumpState.entity]: Distance travelled: 0
  [dumpState.entity]: Energy: 25000 of 25000
  [dumpState.entity]: Mass: 2.56599e+008
  [dumpState.entity]: Owner: <StationEntity 0x121978b0>{"Coriolis Station" "Coriolis Station" position: (-38261.9, 35491.5, 319220) scanClass: CLASS_STATION status: STATUS_ACTIVE}
  [dumpState.entity]: Flags: isShip, isStation, hasRotated, collisionTestFilter
  [dumpState.shipEntity]: Type: griff_normalmapped_coriolis
  [dumpState.shipEntity]: Name: Coriolis Station
  [dumpState.shipEntity]: Display Name: Coriolis Station
  [dumpState.shipEntity]: Roles: <OORoleSet 0xad74240>{coriolis station}
  [dumpState.shipEntity]: Primary role: coriolis
  [dumpState.shipEntity]: Script: <OOJSScript 0x11634c78>{"oolite-default-ship-script" version 1.74.2}
  [dumpState.shipEntity]: Subentity count: 2
  [dumpState.shipEntity]: Behaviour: BEHAVIOUR_IDLE
  [dumpState.shipEntity]: Destination: (0, 0, 0)
  [dumpState.shipEntity]: Other destination: (0, 0, 0)
  [dumpState.shipEntity]: Waypoint count: 0
  [dumpState.shipEntity]: Desired speed: 0
  [dumpState.shipEntity]: Thrust: 100
  [dumpState.shipEntity]: Fuel: 0
  [dumpState.shipEntity]: Fuel accumulator: 1
  [dumpState.shipEntity]: Missile count: 0
  [dumpState.shipEntity.ai]: AI:
    [dumpState.ai]: State machine name: stationAI.plist
    [dumpState.ai]: Current state: IDLE
    [dumpState.ai]: Next think time: 16177.3
    [dumpState.ai]: Next think interval: 0.125
  [dumpState.shipEntity]: Frustration: 0
  [dumpState.shipEntity]: Success factor: 0
  [dumpState.shipEntity]: Shots fired: 0
  [dumpState.shipEntity]: Time since shot: 102422
  [dumpState.shipEntity]: Spawn time: 13920.8 (2243.93 seconds ago)
  [dumpState.shipEntity]: Hull temperature: 60
  [dumpState.shipEntity]: Heat insulation: 1
  [dumpState.shipEntity]: Flags: none
  [dumpState.stationEntity]: Alert level: green
  [dumpState.stationEntity]: Max police: 8
  [dumpState.stationEntity]: Max defense ships: 3
  [dumpState.stationEntity]: Defenders launched: 6
  [dumpState.stationEntity]: Max scavengers: 3
  [dumpState.stationEntity]: Scavengers launched: 0
  [dumpState.stationEntity]: Docked shuttles: 1
  [dumpState.stationEntity]: Docked traders: 6
  [dumpState.stationEntity]: Equivalent tech level: 9
  [dumpState.stationEntity]: Equipment price factor: 1
  [dumpState.stationEntity]: Flags: rotatingStation
  [dumpState.stationEntity]: 1 Ships on approach (unsorted):
  [dumpState.stationEntity]: Nr 1: GalCop Viper Interceptor at distance 21206.1 with role: police
[dumpState]: State for <ShipEntity 0xa6d8dd8>{"GalCop Viper Interceptor" position: (-52486.2, 50860.2, 315878) scanClass: CLASS_POLICE status: STATUS_IN_FLIGHT}:
  [dumpState.entity]: Universal ID: 251
  [dumpState.entity]: Scan class: CLASS_POLICE
  [dumpState.entity]: Status: STATUS_IN_FLIGHT
  [dumpState.entity]: Position: (-52486.2, 50860.2, 315878)
  [dumpState.entity]: Orientation: (-0.687314 + 0.620886i + 0.366684j + 0.0874275k)
  [dumpState.entity]: Distance travelled: 182140
  [dumpState.entity]: Energy: 280 of 280
  [dumpState.entity]: Mass: 69938.3
  [dumpState.entity]: Owner: <ShipEntity 0xa6d8dd8>{"GalCop Viper Interceptor" position: (-52486.2, 50860.2, 315878) scanClass: CLASS_POLICE status: STATUS_IN_FLIGHT}
  [dumpState.entity]: Flags: isShip, collisionTestFilter
  [dumpState.shipEntity]: Type: griff_normalmapped_viper-interceptor_NPC
  [dumpState.shipEntity]: Name: GalCop Viper Interceptor
  [dumpState.shipEntity]: Display Name: GalCop Viper Interceptor
  [dumpState.shipEntity]: Roles: <OORoleSet 0x1ce5e1c8>{interceptor police wingman}
  [dumpState.shipEntity]: Primary role: police
  [dumpState.shipEntity]: Script: <OOJSScript 0x120799e0>{"oolite-default-ship-script" version 1.74.2}
  [dumpState.shipEntity]: Subentity count: 4
  [dumpState.shipEntity]: Behaviour: BEHAVIOUR_FLY_TO_DESTINATION
  [dumpState.shipEntity]: Target: <StationEntity 0x121978b0>{"Coriolis Station" "Coriolis Station" position: (-38261.9, 35491.5, 319220) scanClass: CLASS_STATION status: STATUS_ACTIVE}
  [dumpState.shipEntity]: Destination: (-38261.9, 35491.5, 319220)
  [dumpState.shipEntity]: Other destination: (-36049.6, 33118.6, 322208)
  [dumpState.shipEntity]: Waypoint count: 0
  [dumpState.shipEntity]: Desired speed: 0
  [dumpState.shipEntity]: Thrust: 50
  [dumpState.shipEntity]: Fuel: 160
  [dumpState.shipEntity]: Fuel accumulator: 1
  [dumpState.shipEntity]: Missile count: 3
  [dumpState.shipEntity.ai]: AI:
    [dumpState.ai]: State machine name: dockingAI.plist
    [dumpState.ai]: Current state: GO_TO_COORDS
    [dumpState.ai]: Next think time: 16335.1
    [dumpState.ai]: Next think interval: 0.125
  [dumpState.shipEntity]: Frustration: 0
  [dumpState.shipEntity]: Success factor: 21206.1
  [dumpState.shipEntity]: Shots fired: 0
  [dumpState.shipEntity]: Time since shot: 102396
  [dumpState.shipEntity]: Spawn time: 13921.1 (2414.01 seconds ago)
  [dumpState.shipEntity]: Hull temperature: 60
  [dumpState.shipEntity]: Heat insulation: 1
  [dumpState.shipEntity]: Flags: canFragment
[gameController.exitApp]: .GNUstepDefaults synchronized.

Closing log at 2010-12-30 16:32:09 +0000.
Cheers
John
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

JD wrote:
You wait all that time for a bus and then two come along at once. This time it happened in a democratic system, and once again the queued ship had a police role. It was a GalCop Viper Interceptor on this occasion, and had come to a halt on the far side of the station, 21.2km away....

Cheers
John
Yes, I now figured it out. Its a problem that is unique to patrol ships. I added quite a bunch and got quite a few that were locked up this way. This problem must have been there since at least Oolite 1.65.

Patrol ships fly a round around the station. After such a tour there is a 25% of being set into a dockingAI and a 75% chance of making another tour. However, the problem is that in both cases a "APPROACH_COORDINATES" message is sent to the ship.

When in dockingAI, the ship starts with requestDockingCoordinates and will receive an "APPROACH" message with a desired speed of zero. There are now two messages waiting for the next update and Oolite will pick them in random order. If it happens to pick the "APPROACH_COORDINATES" message first, it will think this message is from the station and it expect that this message has set the desiredSpeed to a value.

So this must always have happened with 50% of the returning patrol ships. I will fix this in trunk by not sending the last "APPROACH_COORDINATES" message when going to dock. In your copy you might fix it by adding the line

Code: Select all

"APPROACH" = ("setStateTo: APPROACH");
in the "GO_TO_COORDS" state of the dockingAI.plist. This will make sure the code will end in the right state when receiving both messages.

While browsing trough the code I noticed an other error. It is not setting the target station for the patrol, so the patrol will just dock at the nearest station. This might be a hoopy casino or any other nearby station. I will fix that also.

I will just continue my old testing of adding a "has_patrol_ships" key to a station that makes that any such station can launch patrols. Its working quite nice now. Only the above bug delayed my testing a bit. :lol:
Post Reply