Nasdaq's Facebook glitch came from race conditions

Nasdaq's Facebook glitch came from race conditions

Nasdaq may pay out as much as $13 million due to a hard-to-find software bug

Article comments

The Nasdaq computer system that delayed trade notices of the Facebook IPO on Friday was plagued by race conditions, the stock exchange announced Monday.

As a result of this technical glitch in its Nasdaq OMX system, the market expects to pay out US$13 million (£8.2 million) or even more to traders.

A number of trading firms lost money due to mismatched Facebook share prices. About 30 million shares' worth of trading were affected, the exchange estimated.

On Friday, Nasdaq had delayed Facebook's IPO by 30 minutes. For about 20 minutes, the exchange stopped confirming trades placed by brokers, who were unable to see the results of their orders for more than two hours.

The problem stemmed from Nasdaq's IPO Cross, a pre-IPO auction process the exchange put in place in 2006 that allows traders to place orders and agree on an IPO price before the stock is officially launched, according to a Nasdaq statement issued on Monday.

Typically, in the minutes before an IPO launch, IPO Cross will run an auction in which traders can put in bids, and then calculate an opening price using these auction bids. The opening price would then be fed to the Nasdaq tape. After the opening price is calculated and just before it prints its opening price to the tape, IPO Cross checks to see if any additional orders have been placed since it started its calculation. In Facebook's case, additional orders kept coming in, which caused IPO Cross to recalculate the price multiple times, resulting in the delay past the 11:00 ET scheduled opening.

The problem was only fixed at 11:30 ET, when Nasdaq switched to a backup version of the IPO Cross matching engine, which allowed the stock to go live on Nasdaq. Unfortunately, this secondary instance of the engine used calculations made at 11:11 ET, ignoring any bids entered in the system since then. Also during this time, some customers did not receive order confirmations or had their connectivity from their own systems momentarily cut. Orders entered between 11:11 ET and 11:30 ET were not executed until after 11:30 ET, resulting in trades that were not fully understood by brokers.

Nasdaq characterised the problem as a race condition. A race condition occurs when two or more parts of a program that rely on each other get locked in an infinite loop, halting forward progress of the program as a whole. The race condition in this case took place between the auction process and the final calculation of the IPO price.

While most race conditions can be identified by simply testing programs while in development, in some cases they may not become apparent until the software is stressed under heavy usage, said Scott Sellers, CEO of software provider Azul Systems. Azul offers a version of the JVM (Java Virtual Machine) engineered for extreme scalability.

While Sellers had no direct information about this Nasdaq system, he did say that many of his customers and potential customers -- which include other financial exchanges -- have experienced race conditions only under heavy loads, as multiple threads in the program interact with one another in sometimes unpredictable ways. So the frenzy of trading around the Facebook IPO might have been enough to expose a flaw in the software, he said.

"A surge in demand can be extraordinarily difficult to model in pre-production staging," he said. "It is the corner case conditions that usually occur in high volumes. If [an organisation] has not built a platform that is scalable enough, it can get in trouble."

Oddly enough, the IPO of another company, Zynga, also scheduled that day, came off correctly, even though the IPO Cross auction period was similarly heated. In this case however, all auction bids were reconciled before the final trading price was issued, at 12:27 ET.

Nonetheless, Nasdaq has subsequently modified the IPO Cross process so it no longer accepts orders after the auction's final calculation has been made.

Nasdaq has rules in place to handle disputed transactions, in which brokers can petition the Nasdaq for losses due to system failures. The company has put aside $13 million for claims. As of Monday, however, Facebook share prices have dipped below the IPO price of $38 per share, and in the mid-afternoon were trading at $33.64.



  • Steve Demianyk at Ipswitch So the biggest IPO in historywas blighted by a system malfunction characterised as a race condition becauseof the huge interest the Facebook IPO was generating among traders Thisclearly brings to the fore the importance of knowing how much strain yourcritical systems are under at any one time The interest in the Facebook IPOwas hardly surprising but such peaks and troughs in demand on a system and itsapplications are often far less predictable without the proper monitorsThrough the execution ofsynthetic transactions and active polling in real time one can capture keyperformance and process related information meaning that problems such as thiscould have been identified and alerted upon before they become an issue thatwas felt and reported on in this case across the globe Steve Demianyk channel manager IpswitchNetwork Management Division
Send to a friend

Email this article to a friend or colleague:

PLEASE NOTE: Your name is used only to let the recipient know who sent the story, and in case of transmission error. Both your name and the recipient's name and address will not be used for any other purpose.

We use cookies to provide you with a better experience. If you continue to use this site, we'll assume you're happy with this. Alternatively, click here to find out how to manage these cookies

hide cookie message
* *