Pivotal Labs

Main menu

Skip to primary content
Skip to secondary content
  • About
  • Case Studies
  • Team
    • Executives
    • Locations
      • San Francisco (HQ)
      • Boston
      • Boulder
      • Denver
      • London
      • Los Angeles
      • New York
  • Community
    • Blogs
    • Tech Talks
    • Events
  • Careers
    • Lifestyle
    • Principles & Practices
    • Benefits
    • FAQ
    • Apply
  • Tools
  • Contact
    • Press Room
    • Press Releases
    • In The News
    • Press Kit
  • All
  • Labs
  • Standup
  • Tracker

Standup 09-23-2010: ActiveRecord, Cucumber, and JS error info

Pivotal Labs
Thursday, September 23, 2010

Ask for Help

“Rails 3 / mysql2 gem: Errors from ActiveRecord due to DB handler going bad while running Cucumber tests. What to do?”

Cucumber does some forking, which may result in your connection being shared in multiple processes, which in turn results in Bad Things©. There may be a way to disable this behavior in the Cucumber rake task. A blunter, less desirable solution may be changing ActiveRecord to reconnect more frequently.

“How do I get HopToad-like errors back from my client-side Javascript?”

Put an error handler on document. You could make an AJAX request back to your server from there to send debugging information. Alternatively, making an AJAX request at the time of your error may not be safe, so you can also put a request in the source tag of an image or script tag, and this may be more reliable.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter

2 Comments

  1. Joseph Palermo says:

    So the Cucumber forking turned out to be us starting Solr for our cucumber tests using Sunspot. We would get errors about the MySQL connection being closed.

    The solution was simply to call ActiveRecord::Base.connection.reconnect! after we had started Solr.

    September 24, 2010 at 1:56 pm

  2. Peter Jaros says:

    Re: JS error handling:

    I don’t think it’s that simple. I just ran a test with the following code in Chrome, FF, and Safari:

    // Test 1:
    // window.onerror = function(arg1, arg2, arg3, arg4) {window.alert(“window.onerror: ” + JSON.stringify(arg1) + “, ” + JSON.stringify(arg2) + “, ” + JSON.stringify(arg3) + “, ” + JSON.stringify(arg4))};

    // Test 2:
    document.onerror = function(arg1, arg2, arg3, arg4) {document.alert(“document.onerror: ” + JSON.stringify(arg1) + “, ” + JSON.stringify(arg2) + “, ” + JSON.stringify(arg3) + “, ” + JSON.stringify(arg4))};

    // Test 3:
    // try {
    var foo = undefined.bar;
    // } catch(e) {
    // window.alert(“try/catch: ” + JSON.stringify(e))
    // }

    I uncommented each test and ran it in each browser. `document.onerror` was completely ignored. `window.onerror` was called in FF, and given three arguments: the message, the file, and the line number. Chrome and Safari ignored `window.onerror`. `try`/`catch` was supported in all three, of course, but it’s notoriously difficult to wrap every piece of code that needs it.

    I don’t have any other browsers handy, but if these three can’t agree, I think we’re screwed. If someone there came up with something that really does work across browsers, I will *gladly* take them to lunch for their efforts. :)

    (Disclaimer: Offer does not include airfare.)

    September 26, 2010 at 8:14 am

Add New Comment Cancel reply

Your email address will not be published.

Pivotal Labs

Pivotal Labs

Recent Posts

  • Does the set of all sets contain itself?
  • Standup 3/8/2012
  • Standup 3/7/2012
Subscribe to Pivotal's Feed

Author Topics

riddles (1)
agile (167)
capistrano (2)
rails (26)
movember (1)
git (10)
railsdoc (1)
object-design (1)
bdd (3)
cucumber (3)
linkedin (1)
oauth (1)
ruby (17)
tdd (2)
lvh.me (1)
rails 3.1.1 (1)
selenium (6)
homebrew (1)
mysql (5)
rvm (1)
sproutcore (1)
paperclip (2)
pry (1)
amazon (1)
heroku (1)
rails3 (2)
jasmine (3)
design (3)
process (12)
productivity (8)
learning (1)
olin (1)
migrations (2)
mongodb (2)
devise (2)
javascript (13)
rubymine (4)
ipad (1)
whurl (1)
head.js (1)
pairing (2)
tools (4)
pair programming (1)
rspec (10)
rspec2 (1)
ruby19 (1)
incubation (3)
startup (5)
api (1)
presenter (1)
vanna (1)
pivotal tracker (5)
capybara (1)
fakeweb (1)
webmock (1)
intern (1)
ruby on rails (25)
meetup (1)
textmate (1)
testing (20)
solr (4)
nyc-standup (11)
community (1)
opensource (3)
activerecord (4)
chrome (1)
mp4 (1)
activeresource (1)
flash (3)
neo4j (1)
nginx (1)
rsoc (1)
meta programming (1)
agile standup (7)
government (3)
webos (4)
xss (1)
jquery (1)
bundler (2)
ci (3)
gems (5)
postgresql (1)
geminstaller (1)
gemcutter (1)
cloud (2)
rack (2)
refraction (1)
gem (5)
refactoring (1)
validations (1)
webrat (1)
engine-yard (1)
firefox (2)
jsunit (1)
mongrel (2)
thin (1)
unicorn (1)
facebook (1)
rubygems (5)
jruby (1)
actioncontroller (1)
rails 2.3 (1)
palmpre (1)
autotest (1)
mac (2)
hosting (1)
goruco (11)
database (3)
railsconf (11)
gogaruco (4)
deployment (4)
github (1)
ie (1)
ajax (1)
intellij (1)
json (1)
asset packaging (1)
polonium (1)
character encoding (1)
utf-8 (1)
test (3)
civics (1)
hpricot (1)
rake (3)
sms (1)
unicode (1)
iphone (1)
java (1)
safari (1)
memory leaks (1)
rr (3)
editor (1)
css (1)
nyc (3)
performance (5)
fun (5)
enterprise rails (1)
health (1)
new and cool (1)
general (2)
treetop (1)
errors (1)
stack (1)
trace (1)
cache (1)
cookies (1)
freesoftware (1)
conferences (1)
development (1)
driven (1)
proxy (1)
caching (1)
peertopatent (1)
languages (1)
rest (2)
rubyforge (1)
sake (1)
file (1)
upload (1)
constants (1)
osx (1)
terminal (1)
pairprogramming (2)
  • About
  • Case Studies
  • Team
  • Community
  • Careers
  • Tools
  • Contact
  • Labs
  • Events

Contact Us

contact@pivotallabs.com
+1 415-77-PIVOT
TwitterLinkedInFacebook

Pivotal Tracker

Tracker is the award-winning agile project management tool that enables real-time collaboration around a shared, prioritized backlog.
Visit pivotaltracker.com >