<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bitbucket</title>
	<atom:link href="http://blog.bitbucket.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bitbucket.org</link>
	<description>Unlimited Git and Mercurial DVCS Code Hosting, FREE by Atlassian</description>
	<lastBuildDate>Mon, 17 Jun 2013 23:14:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Bitbucket 1M users party: new location, and all waitlisters are in!</title>
		<link>http://blog.bitbucket.org/2013/06/17/bitbucket-1m-users-party-new-location-and-all-waitlisters-are-in/</link>
		<comments>http://blog.bitbucket.org/2013/06/17/bitbucket-1m-users-party-new-location-and-all-waitlisters-are-in/#comments</comments>
		<pubDate>Mon, 17 Jun 2013 22:39:16 +0000</pubDate>
		<dc:creator>Kristen Howard, Product Manager</dc:creator>
				<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[meetup]]></category>

		<guid isPermaLink="false">http://blog.bitbucket.org/?p=2099</guid>
		<description><![CDATA[We can&#8217;t wait to celebrate Bitbucket&#8217;s 1 million users this Thursday, and it looks like you feel the same way: the party got so big that we had to move it! With a new larger venue, we&#8217;re happy to announce that all of the waitlisters are officially in!
Please join us at the new location: John Colins Cocktails at 138 Minna Street in San Francisco.


In case you missed our our first announcement, here&#8217;s what&#8217;s happening:


What: Come have a drink (or two) on us to help celebrate 1M users
When: Thursday, June 20th from 6 pm to 9:30 pm
Where: John Colins Cocktails, 138 Minna St. @ New Montgomery, San Francisco
Who: Yourself and anyone from your team - be sure to register for the party!


Want some Atlassian swag? Show up early – we&#8217;re giving away Bitbucket t-shirts to the first 25 folks who show up to the event.]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;">We can&#8217;t wait to celebrate Bitbucket&#8217;s 1 million users this Thursday, and it looks like you feel the same way: the party got so big that we had to move it! With a new larger venue, we&#8217;re happy to announce that all of the waitlisters are officially in!</p>
<p style="text-align: left;">Please join us at the new location: <strong><a href="http://www.johncolins.com/index1.html" rel="nofollow">John Colins Cocktails</a> at 138 Minna Street in San Francisco</strong>.</p>
<div id="main-content">
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2104" alt="John Collins in SF" src="http://blog.bitbucket.org/files/2013/06/john-collins.png" width="600" height="408" /></p>
<p>In case you missed our <a href="http://blog.bitbucket.org/2013/06/04/atlassian-bitbucket-passes-one-million-users/" rel="nofollow">our first announcement</a>, here&#8217;s what&#8217;s happening:</p>
<ul>
<ul>
<li><strong>What:</strong> Come have a drink (or two) on us to help celebrate 1M users</li>
<li><strong>When:</strong> Thursday, June 20th from 6 pm to 9:30 pm</li>
<li><strong>Where:</strong> <a href="https://maps.google.com/maps?q=John+Colins+Cocktails,+Minna+Street,+San+Francisco,+CA&amp;hl=en&amp;sll=37.786608,-122.400251&amp;sspn=0.007784,0.004646&amp;oq=john+col&amp;hq=John+Colins+Cocktails,+Minna+Street,+San+Francisco,+CA&amp;t=m&amp;z=14" rel="nofollow">John Colins Cocktails, 138 Minna St. @ New Montgomery, San Francisco</a></li>
<li><strong>Who:</strong> Yourself and anyone from your team - be sure to <a href="http://bitbucketonemillion.eventbrite.com/" rel="nofollow">register for the party!</a></li>
</ul>
</ul>
<p>Want some Atlassian swag? Show up early – we&#8217;re giving away Bitbucket t-shirts to the first 25 folks who show up to the event.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitbucket.org/2013/06/17/bitbucket-1m-users-party-new-location-and-all-waitlisters-are-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New outbound IP addresses for post-receive hooks</title>
		<link>http://blog.bitbucket.org/2013/06/11/new-outbound-ip-addresses-for-post-receive-hooks/</link>
		<comments>http://blog.bitbucket.org/2013/06/11/new-outbound-ip-addresses-for-post-receive-hooks/#comments</comments>
		<pubDate>Wed, 12 Jun 2013 05:17:42 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.bitbucket.org/?p=2091</guid>
		<description><![CDATA[Bitbucket supports several post-receive hooks, such as Bamboo build integration, diffs via email, HipChat notifications and more.  Today we made a change to our network configuration that results in these services routing through different IP addresses.
If you&#8217;re already taking advantage of our post-receive hooks and have ingress firewall rules to allow us to communicate with your servers, then you&#8217;ll need to update your rules.
The old source IP address was:
63.246.22.222
The new source IP addresses are:
207.223.240.187
207.223.240.188
For more information on our post-receive hooks, please see our docs.]]></description>
				<content:encoded><![CDATA[<p>Bitbucket supports several post-receive hooks, such as <a href="http://www.atlassian.com/software/bamboo/overview">Bamboo</a> build integration, diffs via email, <a href="https://www.hipchat.com/">HipChat</a> notifications and more.  Today we made a change to our network configuration that results in these services routing through different IP addresses.</p>
<p>If you&#8217;re already taking advantage of our post-receive hooks and have ingress firewall rules to allow us to communicate with your servers, then you&#8217;ll need to update your rules.</p>
<p>The old source IP address was:<br />
63.246.22.222</p>
<p>The new source IP addresses are:<br />
207.223.240.187<br />
207.223.240.188</p>
<p><span style="font-size: 13px;">For more information on our post-receive hooks, please see our </span><a style="font-size: 13px;" href="https://confluence.atlassian.com/display/BITBUCKET/Manage+Bitbucket+services">docs</a><span style="font-size: 13px;">.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitbucket.org/2013/06/11/new-outbound-ip-addresses-for-post-receive-hooks/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Say Hello @ WWDC 2013</title>
		<link>http://blog.bitbucket.org/2013/06/06/say-hello-wwdc-2013/</link>
		<comments>http://blog.bitbucket.org/2013/06/06/say-hello-wwdc-2013/#comments</comments>
		<pubDate>Fri, 07 Jun 2013 00:41:35 +0000</pubDate>
		<dc:creator>Justen Stepka, Product Manager</dc:creator>
				<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[meetup]]></category>

		<guid isPermaLink="false">http://blog.bitbucket.org/?p=2088</guid>
		<description><![CDATA[From June 10 &#8211; 14, SourceTree developer Kieran Senior will be at Apple’s Worldwide Developers Conference (WWDC).
This will be Kieran&#8217;s first time at WWDC, and he&#8217;d love to meet you! Shoot the breeze, get your questions answered, or just share some SourceTree love. Plus, he&#8217;s got a SourceTree t-shirt with your name all over it.
How can you resist this face?

Didn&#8217;t get a WWDC ticket? Can&#8217;t find him at the event? No worries, Kieran will be around for some WWDC parties during the week. You can catch him at:

WWDC Bash Mini - 1355 Market Street on Monday June 10th at 7pm
Stir - The Grand, 520 4th Street June 11th at 8pm
Go-Karts and Booze at Scribd HQ - 539 Bryant Street on Wednesday June 12th at 6pm]]></description>
				<content:encoded><![CDATA[<p>From June 10 &#8211; 14, <a href="http://sourcetreeapp.com/" rel="nofollow">SourceTree</a> developer Kieran Senior will be at Apple’s Worldwide Developers Conference (WWDC).</p>
<p>This will be Kieran&#8217;s first time at WWDC, and he&#8217;d love to meet you! Shoot the breeze, get your questions answered, or just share some SourceTree love. Plus, he&#8217;s got a SourceTree t-shirt with your name all over it.</p>
<p>How can you resist this face?</p>
<p><img class="aligncenter size-full wp-image-2089" alt="Kieran Senior" src="http://blog.bitbucket.org/files/2013/06/kieran.jpeg" width="600" height="497" /></p>
<p>Didn&#8217;t get a WWDC ticket? Can&#8217;t find him at the event? No worries, Kieran will be around for some WWDC parties during the week. You can catch him at:</p>
<ul>
<li><a title="WWDC Bash Mini" href="http://www.wwdc-bash-mini.com/" rel="nofollow">WWDC Bash Mini</a> - 1355 Market Street on Monday June 10th at 7pm</li>
<li><a href="http://wwdcparties.com/details.php?id=1743b589b7fa2fee305e2d3ecc444c4e" rel="nofollow">Stir</a> - The Grand, 520 4th Street June 11th at 8pm</li>
<li><a href="http://wwdcparties.com/details.php?id=de1757f61299a6f61e04a71a0fc50004" rel="nofollow">Go-Karts and Booze at Scribd HQ</a> - 539 Bryant Street on Wednesday June 12th at 6pm</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitbucket.org/2013/06/06/say-hello-wwdc-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atlassian Bitbucket passes one million users</title>
		<link>http://blog.bitbucket.org/2013/06/04/atlassian-bitbucket-passes-one-million-users/</link>
		<comments>http://blog.bitbucket.org/2013/06/04/atlassian-bitbucket-passes-one-million-users/#comments</comments>
		<pubDate>Tue, 04 Jun 2013 21:06:22 +0000</pubDate>
		<dc:creator>Justen Stepka, Product Manager</dc:creator>
				<category><![CDATA[atlassian]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[meetup]]></category>
		<category><![CDATA[status]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[drinkup]]></category>

		<guid isPermaLink="false">http://blog.bitbucket.org/?p=2081</guid>
		<description><![CDATA[Bitbucket has seen amazing growth since introducing free unlimited Git repositories for individuals and small teams. Every day is a delight reading your emails, tweets, and support requests thanking us for the service we&#8217;re building to enable your team to build better software.
Today the Bitbucket team is thrilled to announce we have added our millionth user, and we want to express our appreciation.
Help spread the message on Twitter
Meet and code with the Bitbucket team

To thank all of the 1,000,000 users and 80,000 teams who have signed up for Bitbucket, we’re offering the opportunity for you and a colleague to join us for the next ShipIt 24-hour hackathon day at Atlassian in San Francisco.
The Bitbucket team will be hosting our next ShipIt in our beautiful San Francisco office during the month of September, when San Francisco weather is at its finest.
One winner will get:

Round-trip flights to SF for you and a member of your team
One-week hotel stay in downtown SF or Berkeley
All the caffeine, beer, and pizza you can handle

Enter now!
Here&#8217;s how: For each friend you invite who joins Bitbucket, you&#8217;ll be entered into the raffle. Want to know more? Check out our contest details to get all the legal bits.

Calling all locals: Come party with us in SF
Come and have a drink (or two) with the Bitbucket team to help us celebrate 1M users. We&#8217;ll be rocking it out with an open bar and great food at The House of Shields located in downtown San Francisco on June 20 at 6pm.

What should you bring? Yourself and anyone from your team. Register now for the party &#62;&#62;
UPDATE: So many Bitbucket fans were excited to take part in our 1M user celebration that we&#8217;ve moved it to John Colins Cocktails at 138 Minna Street in San Francisco. Please see the latest blog post for more information.]]></description>
				<content:encoded><![CDATA[<p>Bitbucket has seen amazing growth since introducing free unlimited Git repositories for individuals and small teams. Every day is a delight reading your emails, tweets, and support requests thanking us for the service we&#8217;re building to enable your team to build better software.</p>
<p>Today the Bitbucket team is thrilled to announce we have added our millionth user, and we want to express our appreciation.</p>
<p style="text-align: center;"><a href="http://twitter.com/home?status=Atlassian+bitbucket+private+%23git+and+%23hg+hosting+hits+1+million+users+with+80k+teams,+win+a+trip+to+San+Francisco+ow.ly/lI7LD" target="_blank">Help spread the message on Twitter</a></p>
<h2 id="Bitbucket1MUsersBlog-Alreadyinthebayarea?">Meet and code with the Bitbucket team</h2>
<p style="text-align: center;"><img class="aligncenter" alt="Win a trip to visit Bitbucket in San Francisco" src="http://blog.bitbucket.org/files/2013/05/bitbucket-tickets-to-innovation-week.png" width="510" height="267" /></p>
<p>To thank all of the 1,000,000 users and 80,000 teams who have signed up for Bitbucket, we’re offering the opportunity for you and a colleague to join us for the next <a href="http://www.atlassian.com/company/about/shipit" rel="nofollow">ShipIt 24-hour hackathon day at Atlassian in San Francisco</a>.</p>
<p>The Bitbucket team will be hosting our next ShipIt in our <a href="http://www.aiasf.org/programs/competition/design-awards/2012/atlassian-ii-offices/" rel="nofollow">beautiful San Francisco office</a> during the month of September, when San Francisco weather is at its finest.</p>
<p>One winner will get:</p>
<ul>
<li>Round-trip flights to SF for you and a member of your team</li>
<li>One-week hotel stay in downtown SF or Berkeley</li>
<li>All the caffeine, beer, and pizza you can handle</li>
</ul>
<h3 id="Bitbucket1MUsersBlog-Enternow!">Enter now!</h3>
<p>Here&#8217;s how: For each friend you invite who joins Bitbucket, you&#8217;ll be entered into the raffle. Want to know more? Check out our contest details to <a href="https://confluence.atlassian.com/x/PIGiFQ" rel="nofollow">get all the legal bits</a>.</p>
<p style="text-align: center;"><a href="http://bitbucket.org?utm_source=bitbucket_blog&amp;utm_medium=create_account_button&amp;utm_campaign=million_users_blog"><img class="aligncenter size-full wp-image-2056" alt="Create a free account" src="http://blog.bitbucket.org/files/2013/05/create-account.png" width="231" height="63" /></a></p>
<h2 id="Bitbucket1MUsersBlog-Callingalllocals:Comepartywithus">Calling all locals: Come party with us in SF</h2>
<p>Come and have a drink (or two) with the Bitbucket team to help us celebrate 1M users. We&#8217;ll be rocking it out with an open bar and great food at <a href="https://www.google.com/maps/preview#!q=The+House+Of+Shields%2C+39+New+Montgomery+Street%2C+San+Francisco%2C+CA&amp;data=!4m10!1m9!4m8!1m3!1d131827!2d-122.4376!3d37.7577!3m2!1i1440!2i1003!4f13.1" rel="nofollow">The House of Shields located in downtown San Francisco</a> on June 20 at 6pm.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-2084" alt="House of Shields in San Francisco" src="http://blog.bitbucket.org/files/2013/05/house-of-shields.jpeg" width="552" height="385" /></p>
<p style="text-align: left;">What should you bring? Yourself and anyone from your team. <a href="http://bitbucketonemillion.eventbrite.com/" rel="nofollow">Register now for the party &gt;&gt;</a></p>
<p style="text-align: left;"><strong>UPDATE: </strong>So many Bitbucket fans were excited to take part in our 1M user celebration that we&#8217;ve moved it to <strong><a href="http://www.johncolins.com/index1.html" rel="nofollow">John Colins Cocktails</a> at 138 Minna Street in San Francisco</strong>. Please see the latest <a href="http://blog.bitbucket.org/2013/06/17/bitbucket-1m-users-party-new-location-and-all-waitlisters-are-in/">blog post</a> for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitbucket.org/2013/06/04/atlassian-bitbucket-passes-one-million-users/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>Join the Bitbucket support engineer team</title>
		<link>http://blog.bitbucket.org/2013/05/23/join-the-bitbucket-support-engineer-team/</link>
		<comments>http://blog.bitbucket.org/2013/05/23/join-the-bitbucket-support-engineer-team/#comments</comments>
		<pubDate>Thu, 23 May 2013 15:09:15 +0000</pubDate>
		<dc:creator>Marcus Bertrand, Support Engineer</dc:creator>
				<category><![CDATA[atlassian]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://blog.bitbucket.org/?p=2070</guid>
		<description><![CDATA[Over 75,000 teams are using Bitbucket to manage, review and share code in the cloud, and we&#8217;re looking for a support engineer to help those teams code better together.

Are you a technical swiss army knife?
Do you love learning and teaching everyone around you about technology?
Are you the early adopter?
Have you ever scripted your way out of a job?

If so, the Bitbucket team in San Francisco wants YOU to join our support engineering team!
What will you be doing?
You will have the responsibility of working with a wide range of customers, from start-ups to large corporations, to help identify and resolve product issues.

Verify bugs and work with development on providing fixes
Influence product direction based on customer feedback
Communicate with customers to resolve issues
Publish knowledge base articles to improve our self-help offering
Collaborate with our global support team to serve customers worldwide

You&#8217;ll love it here&#8230;

Bitbucket is a part of Atlassian, one of the &#8220;Best Small &#38; Medium Companies to Work for in America.&#8221; Our products reach over 25,000 enterprise customers globally, including Pixar, Twitter, Netflix, NASA and Facebook.
With offices in Sydney, San Francisco and Amsterdam, we are growing fast, and we are building a different kind of software company: one that listens to customers, values innovation and solves customer problems with brilliant simplicity. You&#8217;ll have a direct impact on millions of users as soon as you start! Find out about Life at Atlassian.
Does this sound like you?
Show us your portfolio, blog, Bitbucket or GitHub profile, open-source contributions, or things you&#8217;ve built.

Not for you? What about a mate? If you know of a great support engineer who fits the build, we&#8217;ll give you a referral bonus.]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-2075" alt="Bitbucket UI team" src="http://blog.bitbucket.org/files/2013/05/bitbucket-team.png" width="600" height="388" /></p>
<p>Over 75,000 teams are using Bitbucket to manage, review and share code in the cloud, and we&#8217;re looking for a support engineer to help those teams code better together.</p>
<ul>
<li>Are you a technical swiss army knife?</li>
<li>Do you love learning and teaching everyone around you about technology?</li>
<li>Are you the early adopter?</li>
<li>Have you ever scripted your way out of a job?</li>
</ul>
<p>If so, the Bitbucket team in San Francisco wants YOU to join our support engineering team!</p>
<h2 id="PublicBlog-BitbucketWantsYou!-Whatwillyoubedoing?">What will you be doing?</h2>
<p>You will have the responsibility of working with a wide range of customers, from start-ups to large corporations, to help identify and resolve product issues.</p>
<ul>
<li>Verify bugs and work with development on providing fixes</li>
<li>Influence product direction based on customer feedback</li>
<li>Communicate with customers to resolve issues</li>
<li>Publish knowledge base articles to improve our self-help offering</li>
<li>Collaborate with our global support team to serve customers worldwide</li>
</ul>
<h2 id="PublicBlog-BitbucketWantsYou!-You'llloveithere...">You&#8217;ll love it here&#8230;</h2>
<p><iframe width="640" height="480" src="http://www.youtube.com/embed/D7xt0NHdSkg?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>Bitbucket is a part of <a href="http://www.atlassian.com/" rel="nofollow">Atlassian</a>, one of the &#8220;Best Small &amp; Medium Companies to Work for in America.&#8221; Our products reach over 25,000 enterprise <a href="http://www.atlassian.com/company/customers" rel="nofollow">customers</a> globally, including Pixar, Twitter, Netflix, NASA and Facebook.</p>
<p>With offices in Sydney, San Francisco and Amsterdam, we are growing fast, and we are building a <a href="http://www.atlassian.com/company/careers" rel="nofollow">different kind of software company</a>: one that listens to customers, values innovation and solves customer problems with brilliant simplicity. You&#8217;ll have a direct impact on millions of users as soon as you start! Find out about <a href="http://www.atlassian.com/company/careers/life" rel="nofollow">Life at Atlassian</a>.</p>
<h2 id="PublicBlog-BitbucketWantsYou!-Doesthissoundlikeyou?">Does this sound like you?</h2>
<p>Show us your portfolio, blog, Bitbucket or GitHub profile, open-source contributions, or things you&#8217;ve built.</p>
<p style="text-align: center;"><a href="http://www.atlassian.com/company/careers/jobs/listing?org=ATLASSIAN&amp;cws=1&amp;rid=682"><img class="size-full wp-image-2071 aligncenter" alt="Apply for Bitbucket support job" src="http://blog.bitbucket.org/files/2013/05/download.png" width="309" height="63" /></a></p>
<p>Not for you? What about a mate? If you know of a great support engineer who fits the build, we&#8217;ll <a href="https://www.atlassian.com/company/careers/refer-a-mate" rel="nofollow">give you a referral bonus</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitbucket.org/2013/05/23/join-the-bitbucket-support-engineer-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emergency maintenance Thursday, May 23, 2013 0300 UTC</title>
		<link>http://blog.bitbucket.org/2013/05/22/emergency-maintenance-thursday-may-23-2013-0300-utc/</link>
		<comments>http://blog.bitbucket.org/2013/05/22/emergency-maintenance-thursday-may-23-2013-0300-utc/#comments</comments>
		<pubDate>Wed, 22 May 2013 23:29:51 +0000</pubDate>
		<dc:creator>Justen Stepka, Product Manager</dc:creator>
				<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[availability]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://blog.bitbucket.org/?p=2076</guid>
		<description><![CDATA[A few hours from now on Thursday May, 2013 0300 UTC, Bitbucket will be unavailable for up to 30 minutes to perform emergency maintenance.
This morning&#8217;s brief outage was due to what has been discovered to be a faulty component of Bitbucket&#8217;s datacenter networking infrastructure. This networking equipment must be replaced as soon as possible to avoid further unexpected outages.
We apologize for the sudden nature of this downtime. Please contact us at support@bitbucket.org if you have any questions.]]></description>
				<content:encoded><![CDATA[<p>A few hours from now on <strong><a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Bitbucket+emergency+maintenance&amp;iso=20130523T03" rel="nofollow">Thursday May, 2013 0300 UTC</a>,</strong> Bitbucket will be unavailable for up to 30 minutes to perform emergency maintenance.</p>
<p>This <a href="https://twitter.com/bitbucket/status/337265708218060800" rel="nofollow">morning&#8217;s brief outage</a> was due to what has been discovered to be a faulty component of Bitbucket&#8217;s datacenter networking infrastructure. This networking equipment must be replaced as soon as possible to avoid further unexpected outages.</p>
<p>We apologize for the sudden nature of this downtime. Please contact us at <a href="mailto:support@bitbucket.org" rel="nofollow">support@bitbucket.org</a> if you have any questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitbucket.org/2013/05/22/emergency-maintenance-thursday-may-23-2013-0300-utc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Edit your code in the cloud with Bitbucket</title>
		<link>http://blog.bitbucket.org/2013/05/14/edit-your-code-in-the-cloud-with-bitbucket/</link>
		<comments>http://blog.bitbucket.org/2013/05/14/edit-your-code-in-the-cloud-with-bitbucket/#comments</comments>
		<pubDate>Tue, 14 May 2013 19:43:47 +0000</pubDate>
		<dc:creator>Jon Mooring</dc:creator>
				<category><![CDATA[atlassian]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[changelog]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[commits]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[improvements]]></category>
		<category><![CDATA[new feature]]></category>
		<category><![CDATA[pull request]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://blog.bitbucket.org/?p=2062</guid>
		<description><![CDATA[Have you ever wanted to make a quick change to a file in a repository without having to clone it locally? You want to edit your code where it lives. Introducing the Bitbucket online editor: edit your code directly with Bitbucket – no command line, no cloning, no local editor.

Edit any file, anywhere
From Bitbucket, you can edit any file, anywhere, all you need is your browser. Once you&#8217;re happy with your edits, you can commit straight away or create a pull request to contribute your changes.

Once you select Edit from the source browser, Bitbucket activates the editor and away you go. Syntax highlighting and diff view are all an integrated part of the code editing experience.

The editor is intelligent enough to determine the indentation style from the file&#8217;s original contents. If it&#8217;s off the mark, you can manually set your preferred indent mode and tab size.

The workflow is flexible for every team&#8217;s process – commit directly to the branch you&#8217;re editing on, or create a pull request and select your reviewers. If you don&#8217;t have write access, Bitbucket will automatically create a fork for you and commit your changes before submitting a pull request.
Quickly react to pull request feedback

If your team is like ours, you&#8217;re using pull requests for code review. Often times, you have changes you need to make based on feedback from your teammates before your code is merged. Editing online shouldn&#8217;t get in your way. The Bitbucket online editor allows you to edit your open pull requests directly. We&#8217;ll even update your pull request for you once you&#8217;ve committed your changes.
Built with CodeMirror
At the core of the Bitbucket online editor is CodeMirror – an excellent open-source JavaScript code editor component. The project&#8217;s terrific extension API as well as its top-notch documentation made implementation nearly painless. In addition, the friendly MIT license, the editor&#8217;s blazing-fast performance, and the project&#8217;s support for a wide number of languages made the choice of CodeMirror an easy one.]]></description>
				<content:encoded><![CDATA[<p>Have you ever wanted to make a quick change to a file in a repository without having to clone it locally? You want to edit your code where it lives. Introducing the Bitbucket online editor: <strong>edit your code directly with Bitbucket</strong> – no command line, no cloning, no local editor.</p>
<p style="text-align: center;"><a href="https://bitbucket.org/account/signup/"><img class="size-full wp-image-2056 aligncenter" alt="create-account" src="http://blog.bitbucket.org/files/2013/05/create-account.png" width="231" height="63" /></a></p>
<h2>Edit any file, anywhere</h2>
<p>From Bitbucket, you can edit any file, anywhere, all you need is your browser. Once you&#8217;re happy with your edits, you can commit straight away or create a pull request to contribute your changes.</p>
<p><img class="aligncenter size-full wp-image-2057" alt="Edit button from Source" src="http://blog.bitbucket.org/files/2013/05/edit-button-on-source.jpeg" width="600" height="260" /></p>
<p>Once you select <strong>Edit</strong> from the source browser, Bitbucket activates the editor and away you go. Syntax highlighting and diff view are all an integrated part of the code editing experience.</p>
<p><img class="aligncenter size-full wp-image-2095" alt="Bitbucket editor" src="http://blog.bitbucket.org/files/2013/05/editor1.jpeg" width="600" height="367" /></p>
<p>The editor is intelligent enough to determine the indentation style from the file&#8217;s original contents. If it&#8217;s off the mark, you can manually set your preferred indent mode and tab size.</p>
<p><img class="aligncenter size-full wp-image-2064" alt="commit-changes" src="http://blog.bitbucket.org/files/2013/05/commit-changes.jpeg" width="600" height="322" /></p>
<p>The workflow is flexible for every team&#8217;s process – commit directly to the branch you&#8217;re editing on, or create a pull request and select your reviewers. If you don&#8217;t have write access, Bitbucket will automatically create a fork for you and commit your changes before submitting a pull request.</p>
<h2><span style="color: #000000;">Quickly react to pull request feedback</span></h2>
<p><img class="aligncenter size-full wp-image-2060" alt="Editor from pull requests" src="http://blog.bitbucket.org/files/2013/05/edit-button-on-PR.jpeg" width="600" height="293" /></p>
<p>If your team is like ours, you&#8217;re using pull requests for code review. Often times, you have changes you need to make based on feedback from your teammates before your code is merged. Editing online shouldn&#8217;t get in your way. The Bitbucket online editor allows you to edit your open pull requests directly. We&#8217;ll even update your pull request for you once you&#8217;ve committed your changes.</p>
<h2>Built with CodeMirror</h2>
<p>At the core of the Bitbucket online editor is <a href="http://codemirror.net/">CodeMirror</a> – an excellent open-source JavaScript code editor component. The project&#8217;s terrific extension API as well as its top-notch documentation made implementation nearly painless. In addition, the friendly MIT license, the editor&#8217;s blazing-fast performance, and the project&#8217;s support for a wide number of languages made the choice of CodeMirror an easy one.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitbucket.org/2013/05/14/edit-your-code-in-the-cloud-with-bitbucket/feed/</wfw:commentRss>
		<slash:comments>52</slash:comments>
		</item>
		<item>
		<title>SourceTree – Git &amp; Mercurial client for Windows and Mac updates</title>
		<link>http://blog.bitbucket.org/2013/05/08/sourcetree-git-mercurial-client-for-windows-and-mac-updates/</link>
		<comments>http://blog.bitbucket.org/2013/05/08/sourcetree-git-mercurial-client-for-windows-and-mac-updates/#comments</comments>
		<pubDate>Wed, 08 May 2013 19:40:17 +0000</pubDate>
		<dc:creator>Justen Stepka, Product Manager</dc:creator>
				<category><![CDATA[atlassian]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hg]]></category>
		<category><![CDATA[improvements]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[new feature]]></category>
		<category><![CDATA[sourcetree]]></category>

		<guid isPermaLink="false">http://blog.bitbucket.org/?p=2046</guid>
		<description><![CDATA[Since the public release of SourceTree for Windows a little over a month ago, we’ve been working hard to expand and improve our Git and Mercurial clients for Windows and Mac.
Windows client adds Git Flow support

Our Git Flow support in SourceTree for Mac turned out to be really popular, and it’s been one of the top feature requests from the community since we released SourceTree for Windows; so we’re very happy to announce Git Flow support for our Windows client!
If you’d like some more detail on what Git Flow is, check out Atlassian&#8217;s Git Flow tutorial or our blog Smart branching with SourceTree and Git Flow
SourceTree for Mac version 1.6 adds interactive rebase
Having to bring up a terminal when you want to do an interactive rebase is painful. If you aren’t familiar with rebasing or the command-line, the pain level ratchets up to excruciating. We asked ourselves: “How can we make this simpler and keep everything in SourceTree?”. Our solution is a visual, drag-and-drop interactive rebase:

The UI gives you visual feedback on each step of this previously advanced function. Want to re-order your commits? Want two commits to be one commit? No problem, just drag and drop the rows around.
There is so much more…

Desktop notifications for incoming changesets
New icons to match our Windows version of SourceTree
&#8220;Log Selected…&#8221; on multiple files at once
The push sheet in Mercurial shows which branch you’re pushing to
New preference menu shows the pull count for the currently checked out branch
Git repositories now remember the previously selected options in the pull/merge sheets
Support for the latest Araxis diff/merge tools
The “commit merged changes immediately” setting is now remembered between pulls
Support for longer passwords for Bitbucket, Stash, GitHub and Kiln

Get SourceTree for Free!
If you’re new to Git, or just want a handy tool to make you even faster, download SourceTree – it’s free!]]></description>
				<content:encoded><![CDATA[<p>Since the <a href="http://blog.bitbucket.org/2013/03/19/introducing-sourcetree-git-client-microsoft-windows/" rel="nofollow">public release of SourceTree for Windows</a> a little over a month ago, we’ve been working hard to expand and improve our Git and Mercurial clients for Windows and Mac.</p>
<h2 id="SourceTreeupdatesa-plenty-WindowsclientaddsGitFlowsupport">Windows client adds Git Flow support</h2>
<p><img class="aligncenter size-full wp-image-2049" alt="Git Flow support with SourceTree" src="http://blog.bitbucket.org/files/2013/05/gitflow-sourcetree.png" width="585" height="329" /></p>
<p>Our <a href="http://nvie.com/posts/a-successful-git-branching-model/" rel="nofollow">Git Flow</a> support in SourceTree for Mac turned out to be really popular, and it’s been one of the top feature requests from the community since we released SourceTree for Windows; so we’re very happy to announce Git Flow support for our Windows client!</p>
<p>If you’d like some more detail on what Git Flow is, check out <a href="http://www.atlassian.com/git/workflows#!workflow-gitflow" rel="nofollow">Atlassian&#8217;s Git Flow tutorial</a> or our blog <a title="Smart branching with SourceTree and Git-flow" href="http://blog.sourcetreeapp.com/2012/08/01/smart-branching-with-sourcetree-and-git-flow/" rel="nofollow">Smart branching with SourceTree and Git Flow</a></p>
<h2 id="SourceTreeupdatesa-plenty-SourceTreeforMacversion1.6addsinteractiverebase">SourceTree for Mac version 1.6 adds interactive rebase</h2>
<p>Having to bring up a terminal when you want to do an interactive rebase is painful. If you aren’t familiar with rebasing or the command-line, the pain level ratchets up to excruciating. We asked ourselves: “<em>How can we make this simpler and keep everything in SourceTree</em>?”. Our solution is a visual, drag-and-drop interactive rebase:</p>
<p><img class="aligncenter size-full wp-image-2048" alt="Interactive Rebase" src="http://blog.bitbucket.org/files/2013/05/interactive-rebase.jpeg" width="600" height="386" /></p>
<p>The UI gives you visual feedback on each step of this previously advanced function. Want to re-order your commits? Want two commits to be one commit? No problem, just drag and drop the rows around.</p>
<p><strong>There is so much more…</strong></p>
<ul>
<li>Desktop notifications for incoming changesets</li>
<li>New icons to match our Windows version of SourceTree</li>
<li>&#8220;Log Selected…&#8221; on multiple files at once</li>
<li>The push sheet in Mercurial shows which branch you’re pushing to</li>
<li>New preference menu shows the pull count for the currently checked out branch</li>
<li>Git repositories now remember the previously selected options in the pull/merge sheets</li>
<li>Support for the latest Araxis diff/merge tools</li>
<li>The “commit merged changes immediately” setting is now remembered between pulls</li>
<li>Support for longer passwords for Bitbucket, Stash, GitHub and Kiln</li>
</ul>
<h2 id="SourceTreeupdatesa-plenty-GetSourceTreeforFree!">Get SourceTree for Free!</h2>
<p>If you’re new to Git, or just want a handy tool to make you even faster, download SourceTree – it’s <strong>free</strong>!</p>
<p style="text-align: center;"><a href="http://sourcetreeapp.com"><img class="size-full wp-image-2047 aligncenter" alt="Download SourceTree Free" src="http://blog.bitbucket.org/files/2013/05/download-sourcetree-free.png" width="275" height="46" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitbucket.org/2013/05/08/sourcetree-git-mercurial-client-for-windows-and-mac-updates/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Beautiful and relevant notifications</title>
		<link>http://blog.bitbucket.org/2013/05/07/beautiful-and-relevant-notifications/</link>
		<comments>http://blog.bitbucket.org/2013/05/07/beautiful-and-relevant-notifications/#comments</comments>
		<pubDate>Tue, 07 May 2013 22:02:13 +0000</pubDate>
		<dc:creator>Justen Stepka, Product Manager</dc:creator>
				<category><![CDATA[atlassian]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[new stuff]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[commits]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[improvements]]></category>
		<category><![CDATA[issue tracker]]></category>
		<category><![CDATA[issues]]></category>
		<category><![CDATA[new feature]]></category>
		<category><![CDATA[pull request]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://blog.bitbucket.org/?p=2040</guid>
		<description><![CDATA[Staying up to date on code activity in Bitbucket just got easier. As part of our on-going notifications improvements we have completely redesigned the email notification experience. More control, more options and new HTML emails give you the information you want, when you want it.

Every email has been rethought and redesigned for clarity and to keep the most important information front and center. Also, if you want to quickly react to changes you can quickly jump to the context of the notifications to Bitbucket with one-click. If your email does not accept HTML content, Bitbucket will fallback to text.
It&#8217;s not all looks, we added a few more improvements:

Reply to comments via email: by simply replying to an email you can reply to code comments and contribute to the discussion
Un-clutter you inbox: all emails now include a single click “Unwatch” link to help you un-watch activity that is not relevant to you.

Control the flow
Even beautiful emails can be annoying if you get too many or the wrong ones. To this end Bitbucket has changed some of the default rules around when you are notified of specific events. We think we have gotten the balance just right, however we do realize that everyones workflow is different so we have a included a number of new ways to customize the notifications Bitbucket sends.
Repository subscriptions
On the repository header you&#8217;ll notice a new control that allows you to customize the messages you receive when collaborating on a repository.

When watching a repository you&#8217;ll receive updates via your newsfeed. At times, you may want to receive emails on specific types of messages you care most about including:

Pull requests – all pull request changes (new, updated commits, comments, transitions)
Commits – when a new commit is added or a comment is left
Forks – when a new contributor folks your repository
Issue  – all issues changes (new, updates, transitions, or comments)
Wiki – all wiki changes (new page creation or updates)

If you&#8217;re already watching a repository and have write or admin access, we&#8217;ve configured the watch setting so that you&#8217;ll receive notifications for pull requests and issues by default. Other times you might expect to receive an email:

For any pull request, commit, or issue that you&#8217;ve created, commented, or updated in the past
If you leave a comment or someone @mentions you – you&#8217;ll automatically begin watching the thread so you can stay on top of updated conversations

Command and control center
You can use the new &#8220;Notifications&#8221; account management preference center to fine-tune your existing watches.


Manage which individual repositories, pull requests and issues you&#8217;re watching
Unsubscribe to all notifications on Bitbucket
Configure one-off emails such as when someone mentions you or if you want to receive product updates about Bitbucket

Get Started Now
Join the growing number of teams that host their code on Bitbucket and stay better connected with unlimited private repositories FREE for 5 users.]]></description>
				<content:encoded><![CDATA[<p>Staying up to date on code activity in Bitbucket just got easier. As part of our <a href="http://blog.bitbucket.org/2013/02/25/pull-requests-now-with-reviewers-and-smarter-notifications/" rel="nofollow">on-going notifications improvements</a> we have completely redesigned the email notification experience. More control, more options and new HTML emails give you the information you want, when you want it.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2045" alt="Bitbucket HTML emails" src="http://blog.bitbucket.org/files/2013/05/html-email1.jpeg" width="600" height="367" /></p>
<p>Every email has been rethought and redesigned for clarity and to keep the most important information front and center. Also, if you want to quickly react to changes you can quickly jump to the context of the notifications to Bitbucket with one-click. If your email does not accept HTML content, Bitbucket will fallback to text.</p>
<p>It&#8217;s not all looks, we added a few more improvements:</p>
<ul>
<li><strong>Reply to comments via email</strong>: by simply replying to an email you can reply to code comments and contribute to the discussion</li>
<li><strong>Un-clutter you inbox</strong>: all emails now include a single click “Unwatch” link to help you un-watch activity that is not relevant to you.</li>
</ul>
<h2 id="BitbucketNotificationlaunchblog-Controltheflow">Control the flow</h2>
<p>Even beautiful emails can be annoying if you get too many or the wrong ones. To this end Bitbucket has changed some of the default rules around when you are notified of specific events. We think we have gotten the balance just right, however we do realize that everyones workflow is different so we have a included a number of new ways to <strong>customize the notifications Bitbucket sends</strong>.</p>
<h3 id="BitbucketNotificationlaunchblog-Repositorysubscriptions">Repository subscriptions</h3>
<p>On the repository header you&#8217;ll notice a new control that allows you to customize the messages you receive when collaborating on a repository.</p>
<p style="text-align: center;"><img alt="Bitbucket repo watch widget" src="http://blog.bitbucket.org/files/2013/05/watch-control.jpeg" width="600" height="505" /></p>
<p>When watching a repository you&#8217;ll receive updates via your newsfeed. At times, you may want to receive emails on specific types of messages you care most about including:</p>
<ul>
<li>Pull requests – all pull request changes (new, updated commits, comments, transitions)</li>
<li>Commits – when a new commit is added or a comment is left</li>
<li>Forks – when a new contributor folks your repository</li>
<li>Issue  – all issues changes (new, updates, transitions, or comments)</li>
<li>Wiki – all wiki changes (new page creation or updates)</li>
</ul>
<p>If you&#8217;re already watching a repository and have write or admin access, we&#8217;ve configured the watch setting so that you&#8217;ll receive notifications for pull requests and issues by default. Other times you might expect to receive an email:</p>
<ul>
<li>For any pull request, commit, or issue that you&#8217;ve created, commented, or updated in the past</li>
<li>If you leave a comment or someone <a href="http://blog.bitbucket.org/2011/08/22/now-with-code-commenting-and-mentions/" rel="nofollow">@mentions you</a> – you&#8217;ll automatically begin watching the thread so you can stay on top of updated conversations</li>
</ul>
<h2 id="BitbucketNotificationlaunchblog-Commandandcontrolcenter">Command and control center</h2>
<p>You can use the new &#8220;Notifications&#8221; account management preference center to fine-tune your existing watches.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2042" alt="Notifications preference center" src="http://blog.bitbucket.org/files/2013/05/email-preferences-2.jpeg" width="600" height="379" /></p>
<ul>
<li>Manage which individual repositories, pull requests and issues you&#8217;re watching</li>
<li>Unsubscribe to all notifications on Bitbucket</li>
<li>Configure one-off emails such as when someone mentions you or if you want to receive product updates about Bitbucket</li>
</ul>
<h2 id="BitbucketNotificationlaunchblog-GetStartedNow">Get Started Now</h2>
<p>Join the growing number of teams that host their code on Bitbucket and stay better connected with <strong>unlimited private repositories FREE for 5 users</strong>.</p>
<p style="text-align: center;"><a href="https://bitbucket.org/account/create-team/"><img class="aligncenter size-full wp-image-2044" alt="Create a Bitbucket team" src="http://blog.bitbucket.org/files/2013/05/create-a-team.png" width="338" height="35" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitbucket.org/2013/05/07/beautiful-and-relevant-notifications/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Report on Sunday&#8217;s Outage</title>
		<link>http://blog.bitbucket.org/2013/04/08/report-on-sundays-outage/</link>
		<comments>http://blog.bitbucket.org/2013/04/08/report-on-sundays-outage/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 05:13:30 +0000</pubDate>
		<dc:creator>Erik van Zijst</dc:creator>
				<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://blog.bitbucket.org/?p=2037</guid>
		<description><![CDATA[After last Sunday morning&#8217;s downtime, we thought it&#8217;d be nice to share exactly what happened and what steps we took to resolve things.
Timeline
At roughly 3am Pacific time on Sunday morning April 7th we (Bitbucket&#8217;s SF-based developers) were alerted about reduced availability of the site. Initially responded to by our support engineers, the problem required the help of the Bitbucket developers, which at this particular time of day complicated the investigation a bit.
When we went in we noticed extremely high load on all of our webservers, making them incapable of keeping up with incoming traffic. As load on our fileservers had also gone up significantly, we initially focused our attention on some of the recent changes we had made to our storage infrastructure and configuration.
When this did not reveal any regressions, we saw that our Dogslow reports were reporting an excessive number of page timeouts on a very specific, popular public repository. We saw that this repo, as well as its forks, were being flooded with requests, many hitting pages that are relatively expensive for us to render. At its peak as much as 10% of all traffic went to these repositories and since its access pattern differed dramatically from normal patterns (mostly hammering expensive pages), it overwhelmed us, filling up our worker pools and causing pages to time out.
As the traffic appeared to target just this one repo and its forks, we proceeded to temporarily make these repositories unavailable. This resulted in requests for them serving a 503 Service Unavailable. This immediately brought the site back, confirming that the load was indeed caused by this targeted traffic.
Next we looked for patterns in the now blocked traffic and noticed that while it seemed to come from unique IP addresses from all over the world, they shared a distinct User-Agent string identifying it as coming from a webcrawler.
We contacted the people at this company about their excessive traffic and preemptively went on to block them. We added them to our robots.txt, but since we couldn&#8217;t afford to wait for their crawlers to re-fetch that file, we also blacklisted their User-Agent string on our HAProxy load balancers.
By now the crawler people had gotten back to us saying they had reduced the aggressiveness of their crawling. However, at no point did their traffic show any sign of reduction and it was clear that we needed to keep the blacklist in place.
Immediately after deploying this, the site appeared healthy again and we were very keen to go back to sleep when we noticed a different problem. After a little while the site became unresponsive once again. Requests started to time out and a very ugly 504 page was being served by our Nginx-based SSL terminators. All the while, at about 60%, the actual load on our servers was a lot lower than normal. Something was preventing traffic from reaching the backend.
It turned out that when we blocked the crawler in HAProxy using its reqtarpit directive, we failed to realize that reqtarpit keeps the connection open for several seconds before closing it and with the crawler still opening a ton of concurrent connections per second, this starved our HAProxy connection pools, triggering 503s from Nginx. Instead of reqtarpit, we should have used reqideny to immediately reject the connection. We quickly corrected our mistake and brought the site back to life.
Conclusion
In hindsight we&#8217;re not too impressed by our performance in addressing this issue and would have liked a more speedy resolution. It&#8217;s worth noting that in addition to automated monitoring, we have staff in different time zones covering all 24 hours. In this instance staff in Asia were first to respond, but sometimes investigation of site-wide calamities requires the help of core developers, who in this case had to be woken up, delaying our response a bit.
It was about 6am by the time we flipped our status site back to green, ending a significant period of limited availability, for which we apologize.
We&#8217;d love to say that this will never happen again and of course we&#8217;ll be much better prepared to handle similar incidents in the future. Calamities are often unique, making it hard to predict and anticipate the unknown, but we are committed to making our infrastructure more flexible to make dealing with issues like this one less complicated and we&#8217;ll work as hard as we can to ensure uptime remains what you have come to expect from Bitbucket.]]></description>
				<content:encoded><![CDATA[<p>After last Sunday morning&#8217;s downtime, we thought it&#8217;d be nice to share exactly what happened and what steps we took to resolve things.</p>
<h2>Timeline</h2>
<p>At roughly 3am Pacific time on Sunday morning April 7th we (Bitbucket&#8217;s SF-based developers) were alerted about reduced availability of the site. Initially responded to by our support engineers, the problem required the help of the Bitbucket developers, which at this particular time of day complicated the investigation a bit.</p>
<p>When we went in we noticed extremely high load on all of our webservers, making them incapable of keeping up with incoming traffic. As load on our fileservers had also gone up significantly, we initially focused our attention on some of the recent changes we had made to our storage infrastructure and configuration.</p>
<p>When this did not reveal any regressions, we saw that our <a href="https://pypi.python.org/pypi/dogslow" target="_blank">Dogslow reports</a> were reporting an excessive number of page timeouts on a very specific, popular public repository. We saw that this repo, as well as its forks, were being flooded with requests, many hitting pages that are relatively expensive for us to render. At its peak as much as 10% of all traffic went to these repositories and since its access pattern differed dramatically from normal patterns (mostly hammering expensive pages), it overwhelmed us, filling up our worker pools and causing pages to time out.</p>
<p>As the traffic appeared to target just this one repo and its forks, we proceeded to temporarily make these repositories unavailable. This resulted in requests for them serving a 503 Service Unavailable. This immediately brought the site back, confirming that the load was indeed caused by this targeted traffic.</p>
<p>Next we looked for patterns in the now blocked traffic and noticed that while it seemed to come from unique IP addresses from all over the world, they shared a distinct User-Agent string identifying it as coming from a webcrawler.</p>
<p>We contacted the people at this company about their excessive traffic and preemptively went on to block them. We added them to our <a href="https://bitbucket.org/robots.txt" target="_blank">robots.txt</a>, but since we couldn&#8217;t afford to wait for their crawlers to re-fetch that file, we also blacklisted their User-Agent string on our HAProxy load balancers.</p>
<p>By now the crawler people had gotten back to us saying they had reduced the aggressiveness of their crawling. However, at no point did their traffic show any sign of reduction and it was clear that we needed to keep the blacklist in place.</p>
<p>Immediately after deploying this, the site appeared healthy again and we were very keen to go back to sleep when we noticed a different problem. After a little while the site became unresponsive once again. Requests started to time out and a very ugly 504 page was being served by our Nginx-based SSL terminators. All the while, at about 60%, the actual load on our servers was a lot lower than normal. Something was preventing traffic from reaching the backend.</p>
<p>It turned out that when we blocked the crawler in HAProxy using its <a href="https://code.google.com/p/haproxy-docs/wiki/reqtarpit" target="_blank">reqtarpit</a> directive, we failed to realize that reqtarpit keeps the connection open for several seconds before closing it and with the crawler still opening a ton of concurrent connections per second, this starved our HAProxy connection pools, triggering 503s from Nginx. Instead of reqtarpit, we should have used <a href="https://code.google.com/p/haproxy-docs/wiki/reqdeny" target="_blank">reqideny</a> to immediately reject the connection. We quickly corrected our mistake and brought the site back to life.</p>
<h2>Conclusion</h2>
<p>In hindsight we&#8217;re not too impressed by our performance in addressing this issue and would have liked a more speedy resolution. It&#8217;s worth noting that in addition to automated monitoring, we have staff in different time zones covering all 24 hours. In this instance staff in Asia were first to respond, but sometimes investigation of site-wide calamities requires the help of core developers, who in this case had to be woken up, delaying our response a bit.</p>
<p>It was about 6am by the time we flipped our status site back to green, ending a significant period of limited availability, for which we apologize.</p>
<p>We&#8217;d love to say that this will never happen again and of course we&#8217;ll be much better prepared to handle similar incidents in the future. Calamities are often unique, making it hard to predict and anticipate the unknown, but we are committed to making our infrastructure more flexible to make dealing with issues like this one less complicated and we&#8217;ll work as hard as we can to ensure uptime remains what you have come to expect from Bitbucket.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitbucket.org/2013/04/08/report-on-sundays-outage/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
