Bug when tapping into lakes/ponds

Title:

Summary: Wenbt to test out some of the water physics, instead I bugged my entire save. When I tapped into the lake/pond, the levels got all out of whack, and I got a fairly long engine error. Following such, all of my hearthlings just halted everything, and did not eat. Reopening and reloading did not do anything to resolve this. release-489 (x64) stonehearth/components/water/water_component.luac:281: assert - Pastebin.com Pastebin of the engine crashlog thing for debugging purposes.

Steps to reproduce:

  1. Dig ditch into a lake
  2. Dig a large body to contain a flow
  3. Have it being dug at the same time as this, thus creating uneven levels and wonky water physics.

Expected Results: Things to even out and everything be k

Actual Results: Screwed up save.

Notes:

Attachments:

Version Number and Mods in use: Version number in log, no mods.

System Information: i5 2500k, 12gb ram, R9 270X

1 Like

Hey there @Aulton, welcome to the Discourse! Thanks for the bug report. There are definitely some issues with water, and every error log helps. Going to ping @albert to see this when the devs are back from vacation.

1 Like

Hey,

I think I have created a savegame with a reproducible error related to a waterfall, I guess. I haven’t found a related thread yet, sorry if I just didn’t see it.

release-489 (x64)
stonehearth/components/water/water_component.luac:281: assertion failed!
stack traceback:
	radiant/modules/common.luac:46: in function <radiant/modules/common.luac:46>
	[C]: in function 'assert'
	stonehearth/components/water/water_component.luac:281: in function '_remove_height'
	stonehearth/components/water/water_component.luac:105: in function '_remove_water'
	stonehearth/components/water/water_component.luac:180: in function 'fill_channel_from_water_region'
	...earth/services/server/hydrology/channel_manager.luac:180: in function 'callback_fn'
	...earth/services/server/hydrology/channel_manager.luac:58: in function 'each_channel_ascending'
	...earth/services/server/hydrology/channel_manager.luac:180: in function 'fill_channels_to_capacity'
	...rth/services/server/hydrology/hydrology_service.luac:260: in function '_on_tick'
	...rth/services/server/hydrology/hydrology_service.luac:14: in function '_fn'
	radiant/controllers/timer_controller.luac:33: in function 'fire'
	radiant/controllers/time_tracker_controller.luac:9: in function <radiant/controllers/time_tracker_controller.luac:9>
	[C]: in function 'xpcall'
	radiant/controllers/time_tracker_controller.luac:9: in function 'set_now'
	...earth/services/server/calendar/calendar_service.luac:133: in function 'fn'
	radiant/modules/events.luac:97: in function <radiant/modules/events.luac:96>
	[C]: in function 'xpcall'
	radiant/modules/events.luac:96: in function 'trigger'
	radiant/modules/events.luac:121: in function '_trigger_gameloop'
	radiant/modules/events.luac:150: in function '_update'
	radiant/server.luac:19: in function <radiant/server.luac:17>

I’m not 100% sure how I made this happen, but it might have to do with a lake on a mountain at the edge of a map. I have started digging a 4 x 4 x 5 channel from the lake towards and over the edge of the mountain’s upper level. One level below (lets call it mid level), still mountain area, I’ve let my Hearthlings dig another 4 x 4 x 5 channel from below the first channel towards the edge to the lower mountain level, and also over the edge creating another waterfall. On the lower mountain level I’ve let the Hearthlings dig another 4 x 4 x 5 channel, but only a few blocks. I removed the 4 x 4 x 5 area between the channel and the lake, and watched the water flow far over the edge, hitting the channel on mid level, and then the lower level channel. The water was also spreading around the lower level channel, which unfortunatly was a little short.
When the lake had run empty to a level where no more water would follow, I let the Hearthlings extend the lower level channel by a few blocks towards the next edge.

Somewhere on the way this error occured and since occures everytime I load the savegame.
@support: I can provide you the savegame to reproduce the error on your own machines.

1 Like

Welcome ! :grinning:

May you upload a screen of your waterfall ?

@j_dee463, welcome to the Discourse! Save games are always appreciated, they can be very helpful for the devs. To upload a savegame, locate the folder in C:\Program Files (x86)\Steam\steamapps\common\Stonehearth\saved_games (assuming a default Steam install), zip the folder, and upload it. If the *.zip is less than 10 MB, feel free to upload it directly to the Discourse. If larger, please upload it to a cloud storage site like Dropbox, Google Drive, File Dropper, etc. and post the sharing link here.

Hey and thanks for the welcome, I’m glad to participate in developement of this amazing game :slightly_smiling:

I did not zip the whole savegame folder, my has 1,68GB by now :laughing: Instead I isolated the latest affected savegame and uploaded it here:

https://mega.nz/#!jUt3XI4D!CAlQcIpwrsV2b3zk2MawOyz6tksEcIdozFJ2uw6Kfp4

@Powerclank:
you may go ahead, download the savegame and load it in Stonehearth, and then create a screenshot. But there won’t be much to see anymore, the lake has drained to the point where no more water flows through the channels and so: no more waterfalls :wink:

It’s not only to see the waterfall but the overall (from/to where, how, what’s around) :slightly_smiling:
Thanks anyway

Thanks @j_dee463, it was not my intention to ask for the entire savegame folder, just the particular save game (as you did yourself). Sorry about the confusion!

I can confirm this in a14dev2786.

Was just going to get it:

develop-2786 (x64)
stonehearth/components/water/water_component.lua:794: assertion failed!
stack traceback:
	radiant/modules/common.lua:165: in function <radiant/modules/common.lua:164>
	[C]: in function 'assert'
	stonehearth/components/water/water_component.lua:794: in function '_remove_height'
	stonehearth/components/water/water_component.lua:261: in function '_remove_water'
	stonehearth/components/water/water_component.lua:473: in function 'fill_channel_from_water_region'
	...hearth/services/server/hydrology/channel_manager.lua:534: in function 'callback_fn'
	...hearth/services/server/hydrology/channel_manager.lua:170: in function 'each_channel_ascending'
	...hearth/services/server/hydrology/channel_manager.lua:532: in function 'fill_channels_to_capacity'
	...arth/services/server/hydrology/hydrology_service.lua:721: in function '_on_tick'
	...arth/services/server/hydrology/hydrology_service.lua:49: in function '_fn'
	radiant/controllers/timer_controller.lua:95: in function 'fire'
	radiant/controllers/time_tracker_controller.lua:82: in function <radiant/controllers/time_tracker_controller.lua:82>
	[C]: in function 'xpcall'
	radiant/controllers/time_tracker_controller.lua:82: in function 'set_now'
	...hearth/services/server/calendar/calendar_service.lua:374: in function '_on_event_loop'
	...hearth/services/server/calendar/calendar_service.lua:37: in function 'instance'
	radiant/modules/events.lua:226: in function <radiant/modules/events.lua:220>
	[C]: in function 'xpcall'
	radiant/modules/events.lua:220: in function 'trigger'
	radiant/modules/events.lua:283: in function '_trigger_gameloop'
	radiant/modules/events.lua:334: in function '_update'
	radiant/server.lua:62: in function <radiant/server.lua:58>