<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>185790</bug_id>
          
          <creation_ts>2018-05-18 15:34:48 -0700</creation_ts>
          <short_desc>bisect-builds --list not showing all builds</short_desc>
          <delta_ts>2018-06-21 14:47:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Safari 11</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lucas Forschler">lforschler</reporter>
          <assigned_to name="Lucas Forschler">lforschler</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1425324</commentid>
    <comment_count>0</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-05-18 15:34:48 -0700</bug_when>
    <thetext>running this command does not get me all builds:
bisect-builds -p mac-highsierra --list

my initial research suggests we have reached the 1MB payload limit on amazon lambda functions.

This is visible when testing the API gateway function. The following is returned:

  &quot;LastEvaluatedKey&quot;: {
      &quot;revision&quot;: {
        &quot;N&quot;: &quot;231282&quot;
      },
      &quot;identifier&quot;: {
        &quot;S&quot;: &quot;mac-highsierra-x86_64-release&quot;
      }
    },
    &quot;ScannedCount&quot;: 5271

LastEvaluatedKey is used to signal when we have reached the limit. If there is an entry there, it means more rows exist. We need to query again, using the LastEvaluatedKey as our starting point.

Apparently, we have so many builds on this OS, that we need to investigate this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425325</commentid>
    <comment_count>1</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-05-18 15:35:18 -0700</bug_when>
    <thetext>https://stackoverflow.com/questions/43410541/dynamodb-scan-query-does-not-return-all-the-data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425326</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-18 15:35:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/40380222&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425332</commentid>
    <comment_count>3</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-05-18 15:51:16 -0700</bug_when>
    <thetext>diving at the raw json returned from the gateway, I&apos;m also seeing this:

u&apos;LastEvaluatedKey&apos;: {u&apos;identifier&apos;: {u&apos;S&apos;: u&apos;mac-highsierra-x86_64-release&apos;}, u&apos;revision&apos;: {u&apos;N&apos;: u&apos;231282&apos;}}, u&apos;ScannedCount&apos;: 5271}}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425333</commentid>
    <comment_count>4</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-05-18 15:52:25 -0700</bug_when>
    <thetext>I don&apos;t see a clear way to fix this in the AWS API Gateway. It&apos;s a dumb mapping that simply does the query and returns what it finds. It doesn&apos;t have any place to add logic to &apos;continue&apos; the query from the LastEvaluatedKey. I will have to research this more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425336</commentid>
    <comment_count>5</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-05-18 15:58:32 -0700</bug_when>
    <thetext>I believe to fix this we will need to do the following:

Update the API Gateway to accept an optional &quot;startRevision&quot;.

Teach the bisect-builds script to parse the json, and if it finds a non-null value for LastEvaluatedKey, then we need to send another request, using the LastEvaluatedKey value as the &apos;start revision&apos; for the API.

Then accumulate results until we get them all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425350</commentid>
    <comment_count>6</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-05-18 16:20:52 -0700</bug_when>
    <thetext>https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html
ExclusiveStartKey
The primary key of the first item that this operation will evaluate. Use the value that was returned for LastEvaluatedKey in the previous operation.

The data type for ExclusiveStartKey must be String, Number or Binary. No set data types are allowed.

In a parallel scan, a Scan request that includes ExclusiveStartKey must specify the same segment whose previous Scan returned the corresponding value of LastEvaluatedKey.

Type: String to AttributeValue object map

Key Length Constraints: Maximum length of 65535.

Required: No</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435212</commentid>
    <comment_count>7</comment_count>
      <attachid>343260</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-06-21 13:14:33 -0700</bug_when>
    <thetext>Created attachment 343260
Teach bisect-builds to use the LastEvaluatedKey option.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435220</commentid>
    <comment_count>8</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-06-21 13:24:33 -0700</bug_when>
    <thetext>looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435244</commentid>
    <comment_count>9</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-06-21 13:59:06 -0700</bug_when>
    <thetext>Committed revision 233057.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435265</commentid>
    <comment_count>10</comment_count>
      <attachid>343260</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2018-06-21 14:47:17 -0700</bug_when>
    <thetext>Comment on attachment 343260
Teach bisect-builds to use the LastEvaluatedKey option.

View in context: https://bugs.webkit.org/attachment.cgi?id=343260&amp;action=review

&gt; Tools/Scripts/bisect-builds:96
&gt; +def get_api_url(options, LastEvaluatedKey=None):

Nit: Use snake_case instead of CamelCase on LastEvaluatedKey.

Also, it isn&apos;t immediately obvious what &apos;LastEvaluatedKey&apos; is supposed to mean or be used for here -- can you add a comment or rename the variable to be more descriptive?

&gt; Tools/Scripts/bisect-builds:236
&gt; +    if &apos;LastEvaluatedKey&apos; in data[&apos;revisions&apos;]:

Is it possible to need to run this multiple times with &apos;LastEvaluatedKey&apos;? It looks like maybe this is doing something similar to pagination?

If so, we should do this in a `while` loop, or re-call fetch_revision_list with a new LastEvaluatedKey while more results need to be fetched.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343260</attachid>
            <date>2018-06-21 13:14:33 -0700</date>
            <delta_ts>2018-06-21 13:41:38 -0700</delta_ts>
            <desc>Teach bisect-builds to use the LastEvaluatedKey option.</desc>
            <filename>185790.patch</filename>
            <type>text/plain</type>
            <size>3396</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMzA1MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDE4LTA2LTIxICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBiaXNlY3QtYnVpbGRzIC0tbGlzdCBub3Qgc2hvd2luZyBhbGwgYnVp
bGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU3
OTAKKworICAgICAgICBUaGUgQVdTIEdhdGV3YXkgQVBJIGNhbGwgaW50byBkeW5hbW9EQiBpcyBs
aW1pdGVkIHRvIHJldHVybmluZyAxTUIgb2YgcXVlcnkgZGF0YS4gT3VyIGFyY2hpdmUgc2V0IGhh
cyBvdmVyZ3Jvd24gdGhpcyBsaW1pdCwKKyAgICAgICAgY2F1c2luZyB1cyB0byByZXRyaWV2ZSBh
IHRydW5jYXRlZCBsaXN0IG9mIHJlc3VsdHMuIEZvcnR1bmF0ZWx5LCB3aGVuIHRoaXMgbGltaXQg
aXMgcmVhY2hlZCwgZHluYW1vREIgcmV0dXJucyBhIAorICAgICAgICAiTGFzdEV2YWx1YXRlZEtl
eSIsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGNvbnRpbnVlIHRoZSBxdWVyeSBpbiBhbm90aGVyIHJl
cXVlc3QuIAorCisgICAgICAgIFRoaXMgcGF0Y2ggdGVhY2hlcyBiaXNlY3QtYnVpbGQgdG8gcGFz
cyBhbG9uZyB0aGlzIGtleSB3aGVuIG5lZWRlZC4gVGhlIGJhY2tlbmQgYXBpIHdhcyB1cGRhdGVk
IGZyb20gdjIgdG8gdjJfMSB0byBzdXBwb3J0CisgICAgICAgIHRoaXMgbmV3IHF1ZXJ5c3RyaW5n
IG9wdGlvbi4gQW55IGV4aXN0aW5nIGNvZGUgdXNpbmcgdjIgd2lsbCBub3QgYmUgYWZmZWN0ZWQu
CisgICAgICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvYmlzZWN0LWJ1aWxkczoKKyAgICAgICAgKGdldF9hcGlfdXJsKTogYWRkZWQg
b3B0aW9uYWwgTGFzdEV2YWx1YXRlZEtleSBhcmd1bWVudCwgd2hpY2ggd2lsbCBhcHBlbmQgdGhl
IHF1ZXJ5IHN0cmluZyB0byB0aGUgYmFzZSBhcGkgdXJsLgorICAgICAgICAoZmV0Y2hfcmV2aXNp
b25fbGlzdCk6IEFkZGVkIHRvIGFsbG93IGEgcmVjdXJzaXZlIGNhbGwgd2hpY2ggd2lsbCBxdWVy
eSB1bnRpbCB3ZSByZXRyaWV2ZSBldmVyeSBpdGVtIHJlcXVlc3RlZC4KKyAgICAgICAgKG1haW4p
OiB0ZWFjaCBob3cgdG8gdXNlIGZldGNoX3JldmlzaW9uX2xpc3QuCisKIDIwMTgtMDYtMjEgIEFh
a2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtld3MtYnVpbGRd
IHVuaXQtdGVzdHMgZmFpbCB3aGVuIHJ1biBmcm9tIGFub3RoZXIgZGlyZWN0b3J5CkluZGV4OiBU
b29scy9TY3JpcHRzL2Jpc2VjdC1idWlsZHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9i
aXNlY3QtYnVpbGRzCShyZXZpc2lvbiAyMzMwNTMpCisrKyBUb29scy9TY3JpcHRzL2Jpc2VjdC1i
dWlsZHMJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgaW1wb3J0IHRlbXBmaWxlCiBp
bXBvcnQgdXJsbGliMgogaW1wb3J0IHVybHBhcnNlCiAKLVJFU1RfQVBJX1VSTCA9ICdodHRwczov
L3ExdHpxZnk0OGUuZXhlY3V0ZS1hcGkudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vdjIvJworUkVT
VF9BUElfVVJMID0gJ2h0dHBzOi8vcTF0enFmeTQ4ZS5leGVjdXRlLWFwaS51cy13ZXN0LTIuYW1h
em9uYXdzLmNvbS92Ml8xLycKIFJFU1RfQVBJX0VORFBPSU5UID0gJ2FyY2hpdmVzLycKIFJFU1Rf
QVBJX01JTklGSUVEX0VORFBPSU5UID0gJ21pbmlmaWVkLWFyY2hpdmVzLycKIApAQCAtOTMsMTMg
KzkzLDE3IEBAIGRlZiBmaW5kX2dlKGEsIHgpOgogIyAtLS0tIGVuZCBiaXNlY3QgaGVscGVycyAt
LS0tCiAKIAotZGVmIGdldF9hcGlfdXJsKG9wdGlvbnMpOgorZGVmIGdldF9hcGlfdXJsKG9wdGlv
bnMsIExhc3RFdmFsdWF0ZWRLZXk9Tm9uZSk6CiAgICAgaWYgb3B0aW9ucy5mdWxsOgogICAgICAg
ICBiYXNlX3VybCA9IHVybHBhcnNlLnVybGpvaW4oUkVTVF9BUElfVVJMLCBSRVNUX0FQSV9FTkRQ
T0lOVCkKICAgICBlbHNlOgogICAgICAgICBiYXNlX3VybCA9IHVybHBhcnNlLnVybGpvaW4oUkVT
VF9BUElfVVJMLCBSRVNUX0FQSV9NSU5JRklFRF9FTkRQT0lOVCkKIAogICAgIGFwaV91cmwgPSB1
cmxwYXJzZS51cmxqb2luKGJhc2VfdXJsLCAnLScuam9pbihbb3B0aW9ucy5wbGF0Zm9ybSwgb3B0
aW9ucy5hcmNoaXRlY3R1cmUsIG9wdGlvbnMuY29uZmlndXJhdGlvbl0pKQorICAgIGlmIExhc3RF
dmFsdWF0ZWRLZXk6CisgICAgICAgIHF1ZXJ5c3RyaW5nID0gdXJsbGliMi5xdW90ZShqc29uLmR1
bXBzKExhc3RFdmFsdWF0ZWRLZXkpKQorICAgICAgICBhcGlfdXJsICs9ICc/RXhjbHVzaXZlU3Rh
cnRLZXk9JyArIHF1ZXJ5c3RyaW5nCisgICAgICAgIAogICAgIHJldHVybiBhcGlfdXJsCiAKIApA
QCAtMjIzLDE1ICsyMjcsMjMgQEAgZGVmIHByaW50X2xpc3RfYW5kX2V4aXQocmV2aXNpb25fbGlz
dCwgbwogICAgICAgICBwcmludChyZXZpc2lvbl9saXN0KQogICAgICAgICBleGl0KDApCiAKLWRl
ZiBtYWluKG9wdGlvbnMpOgotICAgIHZhbGlkYXRlX29wdGlvbnMob3B0aW9ucykKLQotICAgIHVy
bCA9IGdldF9hcGlfdXJsKG9wdGlvbnMpCitkZWYgZmV0Y2hfcmV2aXNpb25fbGlzdChvcHRpb25z
LCBMYXN0RXZhbHVhdGVkS2V5PU5vbmUpOgorICAgIHVybCA9IGdldF9hcGlfdXJsKG9wdGlvbnMs
IExhc3RFdmFsdWF0ZWRLZXkpCiAgICAgciA9IHVybGxpYjIudXJsb3Blbih1cmwpCiAgICAgZGF0
YSA9IGpzb24ubG9hZChyKQotICAgIAogICAgIHJldmlzaW9uX2xpc3QgPSBnZXRfc29ydGVkX3Jl
dmlzaW9ucyhkYXRhKQogCisgICAgaWYgJ0xhc3RFdmFsdWF0ZWRLZXknIGluIGRhdGFbJ3Jldmlz
aW9ucyddOgorICAgICAgICBMYXN0RXZhbHVhdGVkS2V5ID0gZGF0YVsncmV2aXNpb25zJ11bJ0xh
c3RFdmFsdWF0ZWRLZXknXQorICAgICAgICByZXZpc2lvbl9saXN0ICs9IGZldGNoX3JldmlzaW9u
X2xpc3Qob3B0aW9ucywgTGFzdEV2YWx1YXRlZEtleSkKKyAgICAgICAgCisgICAgcmV0dXJuIHJl
dmlzaW9uX2xpc3QKKyAgICAKK2RlZiBtYWluKG9wdGlvbnMpOgorICAgIHZhbGlkYXRlX29wdGlv
bnMob3B0aW9ucykKKworICAgIHJldmlzaW9uX2xpc3QgPSBmZXRjaF9yZXZpc2lvbl9saXN0KG9w
dGlvbnMpCisgICAgCiAgICAgaWYgb3B0aW9ucy5saXN0OgogICAgICAgICBwcmludF9saXN0X2Fu
ZF9leGl0KHJldmlzaW9uX2xpc3QsIG9wdGlvbnMpCiAK
</data>
<flag name="review"
          id="361328"
          type_id="1"
          status="+"
          setter="aakash_jain"
    />
    <flag name="commit-queue"
          id="361329"
          type_id="3"
          status="-"
          setter="lforschler"
    />
          </attachment>
      

    </bug>

</bugzilla>