Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(datastore): Treat head as optional to avoid errors #12936

Merged
merged 6 commits into from
Feb 2, 2024

Conversation

stocaaro
Copy link
Member

@stocaaro stocaaro commented Feb 1, 2024

Description of changes

This resolves a class of integ test failures and user experience issues where the outbox.peek returns null. The peek function is written to work around null values (see outbox.ts:128). We should refactor storage.queryOne to return a possibly null value, but this is a much more complicated refactor.

Description of how you validated changes

The amplify-docs-examples integ test fails ~50% of the time with this error. Changing this code and rerunning it, I no longer observe this error across a number of runs.

Unit test added that covers the issue and helped chase out follow on issues.

Checklist

  • PR description included
  • yarn test passes

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@stocaaro stocaaro requested a review from a team as a code owner February 1, 2024 17:22
@stocaaro stocaaro merged commit 08503c8 into aws-amplify:main Feb 2, 2024
30 checks passed
cshfang added a commit that referenced this pull request Feb 5, 2024
* chore(auth): debounce refreshAuthTokens (#12845)

* chore: add debounce callback helper

* chore: add unit tests

* chore: debounce fetchAuthSession

* chore: fix unit test

* chore: fix bundle size limits

* chore: update debounce logic

* chore: update dedup logic

* chore: debounce refreshAuthTokens

* chore: fix bundle size

* chore: address feedback

* chore: fix unit test

* chore: address feedback

* chore: update yarn.lock

* chore: address feedbak

* fix(data): update DataStore to send correct Control Messages when starting (#12861)

* chore(release): Publish [ci skip]

 - @aws-amplify/adapter-nextjs@1.0.13
 - @aws-amplify/analytics@7.0.13
 - @aws-amplify/api@6.0.13
 - @aws-amplify/api-graphql@4.0.13
 - @aws-amplify/api-rest@4.0.13
 - @aws-amplify/auth@6.0.13
 - aws-amplify@6.0.13
 - @aws-amplify/core@6.0.13
 - @aws-amplify/datastore@5.0.13
 - @aws-amplify/datastore-storage-adapter@2.1.13
 - @aws-amplify/geo@3.0.13
 - @aws-amplify/interactions@6.0.13
 - @aws-amplify/notifications@2.0.13
 - @aws-amplify/predictions@6.0.13
 - @aws-amplify/pubsub@6.0.13
 - @aws-amplify/react-native@1.0.13
 - @aws-amplify/react-native-example@0.0.14
 - @aws-amplify/rtn-push-notification@1.2.13
 - @aws-amplify/rtn-web-browser@1.0.13
 - @aws-amplify/storage@6.0.13
 - tsc-compliance-test@0.1.13

* chore(release): update API docs [ci skip]

* chore: enable codecov (#12876)

* docs(auth,analytics): adding in-line docs for public apis (#12882)

* docs(auth,analytics): adding in-line docs for public apis

* fix: unblock the max length lint

* chore(react-native): use react-native 0.71.0 as the dev dep

* fix: Default branch resolution when running E2E tests (#12910)

* fix: Lambda auth config value (#12922)

* chore: renable caching the package list in GH actions

* chore: remove unused codecov package (has been deprecated)

* feat(api): expose HTTP response from API errors (#12835)

---------

Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com>
Co-authored-by: Jim Blanchard <jim.l.blanchard@gmail.com>

* chore: temporarily disable codecov GH action integration (#12928)

* ci: run flaky data e2es without retry (#12758)

* ci: run flaky data e2es without retry

* only run on chrome

* restore workflow

---------

Co-authored-by: Aaron S <94858815+stocaaro@users.noreply.github.com>

* fix(core): Amplify.configure dispatches Hub event with unparsed config object (#12930)

* chore(repo): use typescript 5.0.2 across workspace

* chore(repo): refactor tsconfig hierarchy

- move the base tsconfig into the root of the workspace
- unifying tsconfig tsconfig.build tsconfig.test and tsconfig.watch settings

* chore(repo): promote rollup dependencies into workspace

- remove unused build.js script

* chore(repo): add build:watch using rollup

* chore(repo): setup eslint

* chore(adapter-nextjs): migrate to eslint

* fix(repo): test-github-actions using js-yaml already removed API

* chore(repo): add Code Spell Checker to recommended extension list

* chore(repo): add formatOn actions to formattingToggle controlables

* fix: not appending notification configs

* chore(release): Publish [ci skip]

 - @aws-amplify/adapter-nextjs@1.0.14
 - @aws-amplify/analytics@7.0.14
 - @aws-amplify/api@6.0.14
 - @aws-amplify/api-graphql@4.0.14
 - @aws-amplify/api-rest@4.0.14
 - @aws-amplify/auth@6.0.14
 - aws-amplify@6.0.14
 - @aws-amplify/core@6.0.14
 - @aws-amplify/datastore@5.0.14
 - @aws-amplify/datastore-storage-adapter@2.1.14
 - @aws-amplify/geo@3.0.14
 - @aws-amplify/interactions@6.0.14
 - @aws-amplify/notifications@2.0.14
 - @aws-amplify/predictions@6.0.14
 - @aws-amplify/pubsub@6.0.14
 - @aws-amplify/react-native@1.0.14
 - @aws-amplify/react-native-example@0.0.15
 - @aws-amplify/rtn-push-notification@1.2.14
 - @aws-amplify/rtn-web-browser@1.0.14
 - @aws-amplify/storage@6.0.14
 - tsc-compliance-test@0.1.14

* Revert "chore(repo): use typescript 5.0.2 across workspace" (#12941)

* Revert "chore(repo): use typescript 5.0.2 across workspace"

This reverts commit e20782e.

* chore(api-graphql): temporarily install rollup to package

* fix(repo): rollup generated sourcemap has wrong src path (#12947)

* fix(datastore): Treat head as optional to avoid errors (#12936)

* fix(datastore): Treat head as optional to avoid errors

* Add testing and fix follow-on issue

* fix(api-graphql): wrong arguments for GET operation of a CPK model

* fix: Remove special e2e treatment for validated tests (#12946)

fix: Remove special integ treament for validated tests

* fix(datastore): Limit docs integ test to one browser to improve stability (#12937)

* fix(api-graphql): same results returned for queries on the same model with different selection set

- caused by the incomplete GraphQL documents caching

* Update branch to work with merged updates from main

---------

Co-authored-by: israx <70438514+israx@users.noreply.github.com>
Co-authored-by: David McAfee <mcafd@amazon.com>
Co-authored-by: Jim Blanchard <jim.l.blanchard@gmail.com>
Co-authored-by: aws-amplify-bot <aws@amazon.com>
Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com>
Co-authored-by: AllanZhengYP <zheallan@amazon.com>
Co-authored-by: Hui Zhao <zhohz@amazon.com>
Co-authored-by: Ivan Artemiev <29709626+iartemiev@users.noreply.github.com>
Co-authored-by: Aaron S <94858815+stocaaro@users.noreply.github.com>
Co-authored-by: ManojNB <manojnb95@gmail.com>
Co-authored-by: ManojNB <manojnb@amazon.com>
Co-authored-by: Francisco Rodriguez <frodriguez.cs@gmail.com>
cshfang added a commit that referenced this pull request Feb 5, 2024
* chore(auth): debounce refreshAuthTokens (#12845)

* chore: add debounce callback helper

* chore: add unit tests

* chore: debounce fetchAuthSession

* chore: fix unit test

* chore: fix bundle size limits

* chore: update debounce logic

* chore: update dedup logic

* chore: debounce refreshAuthTokens

* chore: fix bundle size

* chore: address feedback

* chore: fix unit test

* chore: address feedback

* chore: update yarn.lock

* chore: address feedbak

* fix(data): update DataStore to send correct Control Messages when starting (#12861)

* chore(release): Publish [ci skip]

 - @aws-amplify/adapter-nextjs@1.0.13
 - @aws-amplify/analytics@7.0.13
 - @aws-amplify/api@6.0.13
 - @aws-amplify/api-graphql@4.0.13
 - @aws-amplify/api-rest@4.0.13
 - @aws-amplify/auth@6.0.13
 - aws-amplify@6.0.13
 - @aws-amplify/core@6.0.13
 - @aws-amplify/datastore@5.0.13
 - @aws-amplify/datastore-storage-adapter@2.1.13
 - @aws-amplify/geo@3.0.13
 - @aws-amplify/interactions@6.0.13
 - @aws-amplify/notifications@2.0.13
 - @aws-amplify/predictions@6.0.13
 - @aws-amplify/pubsub@6.0.13
 - @aws-amplify/react-native@1.0.13
 - @aws-amplify/react-native-example@0.0.14
 - @aws-amplify/rtn-push-notification@1.2.13
 - @aws-amplify/rtn-web-browser@1.0.13
 - @aws-amplify/storage@6.0.13
 - tsc-compliance-test@0.1.13

* chore(release): update API docs [ci skip]

* chore: enable codecov (#12876)

* docs(auth,analytics): adding in-line docs for public apis (#12882)

* docs(auth,analytics): adding in-line docs for public apis

* fix: unblock the max length lint

* chore(react-native): use react-native 0.71.0 as the dev dep

* fix: Default branch resolution when running E2E tests (#12910)

* fix: Lambda auth config value (#12922)

* chore: renable caching the package list in GH actions

* chore: remove unused codecov package (has been deprecated)

* feat(api): expose HTTP response from API errors (#12835)

---------

Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com>
Co-authored-by: Jim Blanchard <jim.l.blanchard@gmail.com>

* chore: temporarily disable codecov GH action integration (#12928)

* ci: run flaky data e2es without retry (#12758)

* ci: run flaky data e2es without retry

* only run on chrome

* restore workflow

---------

Co-authored-by: Aaron S <94858815+stocaaro@users.noreply.github.com>

* fix(core): Amplify.configure dispatches Hub event with unparsed config object (#12930)

* chore(repo): use typescript 5.0.2 across workspace

* chore(repo): refactor tsconfig hierarchy

- move the base tsconfig into the root of the workspace
- unifying tsconfig tsconfig.build tsconfig.test and tsconfig.watch settings

* chore(repo): promote rollup dependencies into workspace

- remove unused build.js script

* chore(repo): add build:watch using rollup

* chore(repo): setup eslint

* chore(adapter-nextjs): migrate to eslint

* fix(repo): test-github-actions using js-yaml already removed API

* chore(repo): add Code Spell Checker to recommended extension list

* chore(repo): add formatOn actions to formattingToggle controlables

* fix: not appending notification configs

* chore(release): Publish [ci skip]

 - @aws-amplify/adapter-nextjs@1.0.14
 - @aws-amplify/analytics@7.0.14
 - @aws-amplify/api@6.0.14
 - @aws-amplify/api-graphql@4.0.14
 - @aws-amplify/api-rest@4.0.14
 - @aws-amplify/auth@6.0.14
 - aws-amplify@6.0.14
 - @aws-amplify/core@6.0.14
 - @aws-amplify/datastore@5.0.14
 - @aws-amplify/datastore-storage-adapter@2.1.14
 - @aws-amplify/geo@3.0.14
 - @aws-amplify/interactions@6.0.14
 - @aws-amplify/notifications@2.0.14
 - @aws-amplify/predictions@6.0.14
 - @aws-amplify/pubsub@6.0.14
 - @aws-amplify/react-native@1.0.14
 - @aws-amplify/react-native-example@0.0.15
 - @aws-amplify/rtn-push-notification@1.2.14
 - @aws-amplify/rtn-web-browser@1.0.14
 - @aws-amplify/storage@6.0.14
 - tsc-compliance-test@0.1.14

* Revert "chore(repo): use typescript 5.0.2 across workspace" (#12941)

* Revert "chore(repo): use typescript 5.0.2 across workspace"

This reverts commit e20782e.

* chore(api-graphql): temporarily install rollup to package

* fix(repo): rollup generated sourcemap has wrong src path (#12947)

* fix(datastore): Treat head as optional to avoid errors (#12936)

* fix(datastore): Treat head as optional to avoid errors

* Add testing and fix follow-on issue

* fix(api-graphql): wrong arguments for GET operation of a CPK model

* fix: Remove special e2e treatment for validated tests (#12946)

fix: Remove special integ treament for validated tests

* fix(datastore): Limit docs integ test to one browser to improve stability (#12937)

* fix(api-graphql): same results returned for queries on the same model with different selection set

- caused by the incomplete GraphQL documents caching

* Update branch to work with merged updates from main

---------

Co-authored-by: israx <70438514+israx@users.noreply.github.com>
Co-authored-by: David McAfee <mcafd@amazon.com>
Co-authored-by: Jim Blanchard <jim.l.blanchard@gmail.com>
Co-authored-by: aws-amplify-bot <aws@amazon.com>
Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com>
Co-authored-by: AllanZhengYP <zheallan@amazon.com>
Co-authored-by: Hui Zhao <zhohz@amazon.com>
Co-authored-by: Ivan Artemiev <29709626+iartemiev@users.noreply.github.com>
Co-authored-by: Aaron S <94858815+stocaaro@users.noreply.github.com>
Co-authored-by: ManojNB <manojnb95@gmail.com>
Co-authored-by: ManojNB <manojnb@amazon.com>
Co-authored-by: Francisco Rodriguez <frodriguez.cs@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants