Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1075 thank(s) in 852 post(s)
04-28-2013, 06:51 AM
(This post was last modified: 04-28-2013, 07:33 AM by xoft.)
I have a bad deadlock:
One player in the server, and executed a server-console command "save-all".
Now the cRoot's InputThread holds the CS to the Core plugin, because the Core is executing the save-all command; and the command is trying to lock the chunkmap to save chunks.
The TickThread has chunkmap locked because it was ticking, and wants to lock Core's CS to call the OnPlayerMoving() callback. So they effectively deadlock each other.
Fixed deadlock, fixed fake tree remnants... I think I deserve going to bed now
Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1075 thank(s) in 852 post(s)
I tried to fix the slowdown on clients, presumably by having too many block changes right after a chunk loads. So my first thought was - hey, let's tick a chunk for a while after being generated, even if it doesn't have a client yet. That proved counter-productive, since ticking a chunk sometimes triggers its neighbors to generate, they tick for a while and trigger their neighbors, and... soon I had more than a thousand chunks loaded. Need a better strategy.
Posts: 1,162
Threads: 68
Joined: Mar 2013
Thanks: 245
Given 125 thank(s) in 100 post(s)
04-29-2013, 02:52 AM
(04-29-2013, 01:21 AM)xoft Wrote: I tried to fix the slowdown on clients. Good, when is fixed, I will use MCServer world generator. Why don't you do the same that vanilla/bukkit does? (I don't know what it does but it goes well)
Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1075 thank(s) in 852 post(s)
I think rev 1431 half-fixed it There was a bad condition in cChunk::FastSetBlock() that caused several thousand blocks to be sent for each chunk when it made the first simulator tick (turning edge-water from flowing to stationary); now such changes are ignored and not sent to the client.
Still, especially if you use Floody simulator, there can be a lot of block updates that generate legally, when the fluid is spreading a lot. It shouldn't happen too much, though.
Posts: 4,628
Threads: 115
Joined: Dec 2011
Thanks: 693
Given 494 thank(s) in 423 post(s)
The minecart placement is a bit messed up. if you place a normal minecart you get a storage minecart and with the other kinds of minecarts you get nothing.
Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1075 thank(s) in 852 post(s)
04-29-2013, 11:09 PM
(This post was last modified: 04-29-2013, 11:10 PM by xoft.)
Out of curiosity, I pushed MCServer svn log through StatSVN. Here's the code authorship, counted in lines:
Code: xoft 222097 (54.3%)
cedeel 92726 (22.7%)
faketruth 61874 (15.1%)
lapayo 15664 (3.8%)
omencraft 11457 (2.8%)
luksor 2334 (0.6%)
keyboard 1144 (0.3%)
str_warrior 706 (0.2%)
taugeshtu 611 (0.1%)
mtilden 523 (0.1%)
Faketruth, you're losing the project, you need to do something big now
Posts: 4,628
Threads: 115
Joined: Dec 2011
Thanks: 693
Given 494 thank(s) in 423 post(s)
:O i have 0.2%
Posts: 1,162
Threads: 68
Joined: Mar 2013
Thanks: 245
Given 125 thank(s) in 100 post(s)
04-29-2013, 11:41 PM
(This post was last modified: 04-29-2013, 11:48 PM by tonibm19.)
I think that Xoft is the best MCServer developer, is who does more work of all.
Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1075 thank(s) in 852 post(s)
I was originally doing this to see how difficult it would be to change the license - we'd need each author to agree, which in our case is just 12 people, should be doable. Of course, I'm flatterred by the results
Posts: 4,628
Threads: 115
Joined: Dec 2011
Thanks: 693
Given 494 thank(s) in 423 post(s)
for my SignLock plugin i need a World:SetSignLines function. could this be added or did i not searched the source good enough
|