Go to Post [on practice robots:] Twice the work and twice the practice building seem to equal twice the experience so far. - MrBasse [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 31-01-2015, 02:09
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,041
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
NetworkTables freeze bugs across C++/Java/Python

Some of you may remember this bug from last year that affected C++ teams. If you look at this year's NetworkTables code... pretty sure it's still there, somehow the patch slipped through.

I really like the idea of NetworkTables, and SmartDashboard/SFX are super useful -- so I spent a week examining the python NetworkTables implementation. I've identified at least two other places (though, I'm sure there's more) where deadlock/increased latency is possible -- and these places are the same across all three languages. I've written some details on this github issue.

pynetworktables has fixes for these bugs, and should be pretty stable as of 2015.1.0.

I am not planning on fixing the other platforms, as I've already spent enough of my life fixing networktables bugs But hopefully this information can help someone else fix it.
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff

Last edited by virtuald : 31-01-2015 at 02:13.
  #2   Spotlight this post!  
Unread 31-01-2015, 03:10
Thad House Thad House is offline
Volunteer, WPILib Contributor
no team (Waiting for 2021)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2010
Location: Thousand Oaks, California
Posts: 1,076
Thad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond repute
Re: NetworkTables freeze bugs across C++/Java/Python

Quote:
Originally Posted by virtuald View Post
Some of you may remember this bug from last year that affected C++ teams. If you look at this year's NetworkTables code... pretty sure it's still there, somehow the patch slipped through.

I really like the idea of NetworkTables, and SmartDashboard/SFX are super useful -- so I spent a week examining the python NetworkTables implementation. I've identified at least two other places (though, I'm sure there's more) where deadlock/increased latency is possible -- and these places are the same across all three languages. I've written some details on this github issue.

pynetworktables has fixes for these bugs, and should be pretty stable as of 2015.1.0.

I am not planning on fixing the other platforms, as I've already spent enough of my life fixing networktables bugs But hopefully this information can help someone else fix it.
Ive noticed that NetworkTables for a long time has been really clunky. I was assuming most of that was caused by limitations of the CRIO platform. Maybe now that we have a much more capable system, it might be time to rewrite it to be cleaner and safer. I have had to help many teams debug issues with network tables, usually caused by teams writing data too quickly and causing the buffers to lag out.

I'm not much of a network programmer, so I don't know how much help I would actually be, but I would be glad to help try and learn more about how to make network tables cleaner. Being over 50 files in Java just to have a data sharing protocol seems like a lot too much.
__________________
All statements made are my own and not the feelings of any of my affiliated teams.
Teams 1510 and 2898 - Student 2010-2012
Team 4488 - Mentor 2013-2016
Co-developer of RobotDotNet, a .NET port of the WPILib.
  #3   Spotlight this post!  
Unread 31-01-2015, 09:18
wireties's Avatar
wireties wireties is offline
Principal Engineer
AKA: Keith Buchanan
FRC #1296 (Full Metal Jackets)
Team Role: Mentor
 
Join Date: Jan 2006
Rookie Year: 2004
Location: Rockwall, TX
Posts: 1,169
wireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond repute
Send a message via AIM to wireties
Re: NetworkTables freeze bugs across C++/Java/Python

Quote:
Originally Posted by Thad House View Post
Ive noticed that NetworkTables for a long time has been really clunky. I was assuming most of that was caused by limitations of the CRIO platform.
It has nothing to do with the platform, language or design. The implementation is just a little shaky - as if the authors were well-meaning but not so well-versed in network and multi-tasking environments. Perhaps a program where veteran software mentors server as code reviewers would help?
__________________
Fast, cheap or working - pick any two!
  #4   Spotlight this post!  
Unread 31-01-2015, 09:37
Greg McKaskle Greg McKaskle is offline
Registered User
FRC #2468 (Team NI & Appreciate)
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Austin, TX
Posts: 4,748
Greg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond repute
Re: NetworkTables freeze bugs across C++/Java/Python

By all three languages, you are talking about Java, C++, and python, right?

I do not think these issues exist in the LV implementation, but checking to see if that was what you were meaning by all three.

Greg McKaskle
  #5   Spotlight this post!  
Unread 31-01-2015, 10:00
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,041
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: NetworkTables freeze bugs across C++/Java/Python

Quote:
Originally Posted by Greg McKaskle View Post
By all three languages, you are talking about Java, C++, and python, right?

I do not think these issues exist in the LV implementation, but checking to see if that was what you were meaning by all three.

Greg McKaskle
Yes, thanks for clarifying. I have not looked at the LV implementation.
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 10:03.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi