2016-11-17 11 views
1

私はBraintree Java SDKを利用するサーバー側のClojureサービスを作成しました。これは、支払いトークンの作成、顧客の作成、通知の処理などのリクエストを行います。Braintreeのサンドボックスを呼び出すことによって、このすべてをテストするテストスイートがあります。これは、Travisでテストを実行しようとするまでうまくいきます。Travis CIからの遅いBraintree APIリクエスト

Travisで、少なくとも50%の時間、私のビルドはタイムアウトになるので失敗し、Braintree SDK(私の場合は顧客を見つけるが、それは最初の呼び出しの呼び出しを絞り込んだが、どのような呼び出しが最初であるかは重要ではないようです)。コードは、通話が完了するまで数分間待っています。時にはそれはすぐに起こることがあり、10分が経過するとトラビスの仕事が諦めることもあります。これは決してローカルでは起こりません。

誰が何が起こっているか考えている人はいますか? Braintreeへの最初の呼び出しに影響するように見えるだけなので、おそらくハンドシェイクのプロセスと関係があるでしょうか?他の誰かがこの問題を見ていますか?

答えて

1

暗いところでのショットですが、これはエントロピーソースが足りないビルドプラットフォームの問題であり、ランダムデバイスの読み取り時にコードや依存関係の一部がブロックされている可能性があります。良好なエントロピー源の欠如がある場合、これはハサミを取り付けることによって解決することができる。

havegedをインストールして開始するには、apt addonを使用する必要があります。 .travis.ymlに以下を追加し、改善があるかどうか確認してください:

addons: 
    apt: 
    packages: 
     - haveged 
+1

ありがとう! 'cat/proc/sys/kernel/random/entropy_avail'を実行して、利用可能なエントロピーをチェックすると、それぞれ219と1405の結果が得られますので、以前はエントロピーが非常に低くなっていました。 – SirSlush86