{"id":1393,"date":"2010-06-02T15:24:28","date_gmt":"2010-06-02T20:24:28","guid":{"rendered":"http:\/\/mikeconley.ca\/blog\/?p=1393"},"modified":"2023-12-20T16:25:16","modified_gmt":"2023-12-20T21:25:16","slug":"review-board-tests-scmtool-segmentation-fault","status":"publish","type":"post","link":"https:\/\/mikeconley.ca\/blog\/2010\/06\/02\/review-board-tests-scmtool-segmentation-fault\/","title":{"rendered":"Review Board Tests:  SCMTool Segmentation Fault"},"content":{"rendered":"<p>I can&#8217;t honestly say I&#8217;ve been doing much test-driven development on Review Board.\u00a0 Django is a really cool web-framework, but I miss all of the nice testing tools from the Rails ecosystem.<\/p>\n<p>Anyhow, today, I decided to run the tests, and BAM &#8211; Segmentation Fault:<\/p>\n<blockquote><p>Testing Perforce binary diff parsing &#8230; SKIP: perforce\/p4python is not installed<br \/>\nTesting PerforceTool.get_changeset &#8230; SKIP: perforce\/p4python is not installed<br \/>\nTesting Perforce empty and normal diff parsing &#8230; SKIP: perforce\/p4python is not installed<br \/>\nTesting Perforce empty diff parsing &#8230; SKIP: perforce\/p4python is not installed<br \/>\nTesting PerforceTool.get_file &#8230; SKIP: perforce\/p4python is not installed<br \/>\nTesting parsing SVN diff with binary file &#8230; ok<br \/>\nTesting SVNTool.get_file &#8230; <strong>Segmentation Fault<\/strong><\/p><\/blockquote>\n<p>Yikes.\u00a0 Getting a segfault in Python is unusual, and a little jarring.\u00a0 However, it did let me narrow down the problem a bit:\u00a0 it must have to do with the pysvn bindings that Review Board uses to talk to Subversion, because those are written in C++ (which can certainly segfault).<\/p>\n<p>The machine I was using had Ubuntu Hardy on it, and the Hardy packages have pysvn 1.5.2-1.\u00a0 Taking a look at <a href=\"http:\/\/pysvn.tigris.org\/\">the pysvn homepage<\/a>, the most recent version is actually 1.7.2.<\/p>\n<p>So, I uninstalled pysvn, <a href=\"http:\/\/pysvn.tigris.org\/project_downloads.html\">downloaded the source<\/a> for 1.7.2, compiled it, and installed it manually.<\/p>\n<p>Segfault gone.\u00a0 Tests pass.\u00a0 Awesome sauce.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I can&#8217;t honestly say I&#8217;ve been doing much test-driven development on Review Board.\u00a0 Django is a really cool web-framework, but I miss all of the nice testing tools from the Rails ecosystem. Anyhow, today, I decided to run the tests, and BAM &#8211; Segmentation Fault: Testing Perforce binary diff parsing &#8230; SKIP: perforce\/p4python is not [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[657,773,649],"tags":[704,703,1219,504,700,702,701,705],"class_list":["post-1393","post","type-post","status-publish","format-standard","hentry","category-extensions-review-board-code-reviews-computer-science-technology","category-gsoc-computer-science","category-review-board","tag-hardy","tag-pysvn","tag-review-board","tag-reviewboard","tag-scmtool","tag-segfault","tag-segmentation-fault","tag-ubuntu"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/prmTy-mt","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/1393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/comments?post=1393"}],"version-history":[{"count":3,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/1393\/revisions"}],"predecessor-version":[{"id":1531,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/1393\/revisions\/1531"}],"wp:attachment":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/media?parent=1393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/categories?post=1393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/tags?post=1393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}