Skip to content

MongoSK crashing server repeatedly #96

@JIBSIL

Description

@JIBSIL

🔖 Versions

[22:23:26 INFO]: [Skript] Skript's aliases can be found here: https://github.com/SkriptLang/skript-aliases
[22:23:26 INFO]: [Skript] Skript's documentation can be found here: https://docs.skriptlang.org/
[22:23:26 INFO]: [Skript] Skript's tutorials can be found here: https://docs.skriptlang.org/tutorials
[22:23:26 INFO]: [Skript] Server Version: 1.20.6-2232-f1c87e4 (MC: 1.20.6)
[22:23:26 INFO]: [Skript] Skript Version: 2.8.6 (skriptlang-github)
[22:23:26 INFO]: [Skript] Installed Skript Addons: 
[22:23:26 INFO]: [Skript]  - Skript-AnvilGUI v1.9
[22:23:26 INFO]: [Skript]  - skript-gui v1.3 (https://github.com/APickledWalrus/skript-gui)
[22:23:26 INFO]: [Skript]  - DiSky v4.17.2
[22:23:26 INFO]: [Skript]  - MongoSK v2.3.2 (https://github.com/Romitou/MongoSK)
[22:23:26 INFO]: [Skript]  - skript-reflect v2.4 (https://github.com/SkriptLang/skript-reflect)
[22:23:26 INFO]: [Skript]  - SkQuery v4.1.10
[22:23:26 INFO]: [Skript]  - SkBee v3.5.3 (https://github.com/ShaneBeee/SkBee)
[22:23:26 INFO]: [Skript]  - SkriptJSON v1.0.0
[22:23:26 INFO]: [Skript] Installed dependencies: 
[22:23:26 INFO]: [Skript]  - Vault v1.7.3-b131
[22:23:26 INFO]: [Skript]  - WorldGuard v7.0.10+d9424b1

✒️ Description

Hi - first of all, great project you have here! I've used MongoSK for a while and it's always been quite stable, until I started doing more operations per second on it. Specifically, we migrated many variables like tokens and fishing, into MongoDB because of its superior scalability compared to Skript's inbuilt data storage. I've been having crashes every few hours, always with the same message. It looks like it's just timing out waiting on the database, but we are running a pretty stable database on the same machine, and our network (Hetzner) very rarely has issues with stability. I've set the read and connect timeouts to 60000ms just to try to prevent crashing, with no luck. I'm out of ideas for what's happening here.

Code that we use to manipulate mongodb:

function mongo_getPlayer(p: offline player) :: object:
	set {_doc} to first mongo document with mongosk filter where field "_id" is uuid of {_p} of collection {-Database::playersCollection}
	if {_doc} is not set:
		ug_newPlayer({_p}) # this is a function from our gencore, don't need to worry about this!
	return {_doc}

function mongo_getMultiplier(p: player) :: object:
	set {_doc} to mongo_getPlayer({_p})
	set {_item} to mongo value "stats_multiplier" of {_doc}
	if {_item} is not set:
		set mongo value "stats_multiplier" of {_doc} to 1
		update mongo document {_doc} of {-Database::playersCollection}
	return {_item}

function mongo_setMultiplier(p: player, i: number):
	set {_doc} to mongo_getPlayer({_p})
	set mongo value "stats_multiplier" of {_doc} to {_i}
	update mongo document {_doc} of {-Database::playersCollection}

⚙️ Expected behavior

Stability was expected, as mongosk has typically been very stable with my server

🔎 Steps to reproduce

Code is posted in the description section, but I think it occurs when you are writing a lot to the database at the same time.

📸 Errors or screenshots

Logfile on mclo.gs

🤔 Other

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugv3Planned for the v3 version

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions