Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
 Couple bugs
Today, 5:42 pm
By Remcon
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
Bug in will_fall( )
Oct 23, 2017, 1:35 am
By GatewaySysop
Bug in do_zap( ), do_brandish( )
Oct 18, 2017, 1:52 pm
By GatewaySysop
Bug in get_exp_worth( )
Oct 10, 2017, 1:26 am
By GatewaySysop
LOP 1.45
Author: Remcon
Submitted by: Remcon
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Memwatch
Author: Johan Lindh
Submitted by: Vladaar
Users Online
CommonCrawl, DotBot, Google, Yandex, Yahoo!, Majestic-12

Members: 0
Guests: 10
Stats
Files
Topics
Posts
Members
Newest Member
477
3,705
19,232
608
LAntorcha
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » Codebases » SWR FUSS » Blank Screen
Forum Rules | Mark all | Recent Posts

Blank Screen
< Newer Topic :: Older Topic >

Pages:<< prev 1, 2 next >>
Post is unread #21 Mar 1, 2010, 2:20 pm
Go to the top of the page
Go to the bottom of the page

Kayle
Off the Edge of the Map
GroupAdministrators
Posts1,195
JoinedMar 21, 2006

I apologize, I shouldn't have brushed this under the rug like that. This is a serious issue, but one I can't seem to replicate at all. I booted a copy of stock SWRFUSS, made 30 characters, that's a lot of tabs in zMud btw, and proceeded to attempt to make this happen.

Something, Somewhere in your code is closing descriptor 0. There's no reason it should be assigning 0 anywhere if it hasn't inadvertently been closed. As has been stated, descriptors 0 and 1 are explicitly used for other things, stdin and stdout. Closing these is a bad idea as has been pointed out.
       
Post is unread #22 Mar 1, 2010, 2:22 pm
Go to the top of the page
Go to the bottom of the page

Kayle
Off the Edge of the Map
GroupAdministrators
Posts1,195
JoinedMar 21, 2006


Banner said:

What steps do you suggest I take? How do you connect to a running process with gdb, where should I place breakpoints, and what should I be looking for?


gdb <executable> <process ID of running process>

Anything that closes a descriptor.

Closing descriptor 0.
       
Post is unread #23 Mar 1, 2010, 2:24 pm
Go to the top of the page
Go to the bottom of the page

Banner
Magician
GroupMembers
Posts169
JoinedNov 29, 2005


Kayle said:

I apologize, I shouldn't have brushed this under the rug like that. This is a serious issue, but one I can't seem to replicate at all. I booted a copy of stock SWRFUSS, made 30 characters, that's a lot of tabs in zMud btw, and proceeded to attempt to make this happen.

Something, Somewhere in your code is closing descriptor 0. There's no reason it should be assigning 0 anywhere if it hasn't inadvertently been closed. As has been stated, descriptors 0 and 1 are explicitly used for other things, stdin and stdout. Closing these is a bad idea as has been pointed out.
I can hardly get it to replicate when I want to, and I'm also fairly sure it only exists in my codebase but I don't know what causes it so I can't readily admit to that. Where and what would 0 be assigned to and what is it called so that I can check that it's not being closed? I don't think it'd be closed or opened anywhere but in comm.cpp.
       
Post is unread #24 Mar 1, 2010, 4:09 pm   Last edited Mar 1, 2010, 4:17 pm by Banner
Go to the top of the page
Go to the bottom of the page

Banner
Magician
GroupMembers
Posts169
JoinedNov 29, 2005

Player Bob quit.
Log: [*****] BUG: close_socket closing desc 0 on 1023
Comm: Bob has quit.


I followed the paper trail through do_quit, to extract_char, to close_socket, and line 1023 turns out to be:

SWGI:
   }
   compressEnd( dclose );       

   if( dclose->descriptor == maxdesc )
      --maxdesc;
   if( dclose->auth_fd != -1 ) 
      close( dclose->auth_fd ); //1023

   free_desc( dclose );
   --num_descriptors;
   return;
}

SMAUGFUSS:

   }

   compressEnd( dclose );

   if( dclose->descriptor == maxdesc )
      --maxdesc;         

   free_desc( dclose );
   --num_descriptors;       
   return;
}   



I noticed that that junk doesn't exist in Smaugfuss, so I'm assuming it's outdated unnecessary code I have that is being set at 0 and then being close errornously. Removing it will be okay, yes?

EDIT: On further inspection, I noticed it is initalized as -1. After hotboot, I don't believe it'd be set, and end up as 0. Then when they quit, the check would tell it to go ahead and close it. Amiright?

EDIT: Verified that was what was happening, and removing auth_fd and auth_inc harmed nothing and fixed everything. Thank you all for the help!
       
Post is unread #25 Mar 1, 2010, 4:19 pm   Last edited Mar 1, 2010, 4:20 pm by Samson
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

Looks like you found something still in your code that's been taken out of the Smaug branch past 1.4a. Somewhere along the way it looks to have been removed from SWRFUSS/SWFOTEFUSS as well, there is no sign of auth_fd in there. I had to go back through my archives and only found auth_id specified in Smaug 1.02a and older.

You should find it in mud.h, remove it there, then compile and remove it from anywhere else the codebase is using it.
       
Post is unread #26 Mar 1, 2010, 4:28 pm   Last edited Mar 1, 2010, 4:29 pm by Banner
Go to the top of the page
Go to the bottom of the page

Banner
Magician
GroupMembers
Posts169
JoinedNov 29, 2005

Samson said:

Looks like you found something still in your code that's been taken out of the Smaug branch past 1.4a. Somewhere along the way it looks to have been removed from SWRFUSS/SWFOTEFUSS as well, there is no sign of auth_fd in there. I had to go back through my archives and only found auth_id specified in Smaug 1.02a and older.

You should find it in mud.h, remove it there, then compile and remove it from anywhere else the codebase is using it.
Yeah, it was being set to -1 in init_descriptor() and being referenced in that ifcheck but that was it. auth_id wasn't being set anywhere. I was about to remove auth_state but that held authorization states for names, and was the only one being used.

I wish little changes like that were posted somewhere so I'd know about these things. :P
       
Post is unread #27 Mar 1, 2010, 5:42 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

Since it doesn't show up in Smaug 1.4a, it wouldn't have had reason to be in the changelogs for SmaugFUSS. What I'm not sure about is when it got removed from the SWR side since it's missing from both of the FUSS packages there but still present in the original Smaug 1.02a code they were based on. I don't have untouched copies of the original SWR bases lying around.
       
Post is unread #28 Mar 1, 2010, 6:12 pm
Go to the top of the page
Go to the bottom of the page

Caius
Magician
GroupMembers
Posts132
JoinedJan 29, 2006


Samson said:

Since it doesn't show up in Smaug 1.4a, it wouldn't have had reason to be in the changelogs for SmaugFUSS. What I'm not sure about is when it got removed from the SWR side since it's missing from both of the FUSS packages there but still present in the original Smaug 1.02a code they were based on. I don't have untouched copies of the original SWR bases lying around.

The ident code is present in original SWR 1.0, but removed in SWR 1.0 FUSS (from Tyche's ftp archive).
       
Post is unread #29 Mar 1, 2010, 6:28 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

Must have been one of those things taken out in the early days of the project then when we didn't have revision control in place.
       
Post is unread #30 Mar 1, 2010, 11:41 pm
Go to the top of the page
Go to the bottom of the page

Kayle
Off the Edge of the Map
GroupAdministrators
Posts1,195
JoinedMar 21, 2006

auth_* was part of the Ident code with the pipe breaking and what not. As far as I know it was one of the first things removed from the FUSS bases. They haven't been present at all since I joined the project as a volunteer, or a maintainer.
       
Pages:<< prev 1, 2 next >>