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

Failing build #3

Open
cer opened this issue Apr 13, 2021 · 12 comments
Open

Failing build #3

cer opened this issue Apr 13, 2021 · 12 comments

Comments

@cer
Copy link
Collaborator

cer commented Apr 13, 2021

See https://github.com/eventuate-examples/eventuate-tram-golang-examples-customers-and-orders/runs/2334547181?check_suite_focus=true

Only io.eventuate.examples.tram.ordersandcustomers.customers.domain.events.CustomerCreatedEvent is published - no events related to order creations.

@dartartem
Copy link
Contributor

@cer I read messages and found that order service does not have eventuate.outbox.id property set. Fixed. Tested locally (just in case). Now I will create PR.

@dartartem
Copy link
Contributor

dartartem commented Apr 13, 2021

PR: #4

@cer
Copy link
Collaborator Author

cer commented Apr 13, 2021

@cer I read messages and found that order service does not have eventuate.outbox.id property set. Fixed. Tested locally (just in case). Now I will create PR.

How did it work locally for you?

@dartartem
Copy link
Contributor

I am trying to understand

@dartartem
Copy link
Contributor

So, it did not help. It worked for me locally because db schema is compatible between application id and db id versions. Cdc just checks the id header and case if it is missed it generates it depending on database generated id, otherwise just process the message (in case if service that sent message does not have eventuate outbox id specified).

@cer
Copy link
Collaborator Author

cer commented Apr 13, 2021

It worked for me locally because db schema is compatible between application id and db id versions. Cdc just checks the id header and case if it is missed it generates it depending on database generated id, otherwise just process the message (in case if service that sent message does not have eventuate outbox id specified).

I am not sure what you are trying to say. Please explain more including why your environment's db schema is different than Github's?

Also, is the different due to differing snapshots versions? incorrect local copies of libraries? Please pull the images to make sure your environment has the latest.

Also, please analyze the results of the build:

  • The container logs including the HTTP proxy.
  • The messages that are printed including those in the received_message table

@dartartem
Copy link
Contributor

dartartem commented Apr 13, 2021

I am not sure what you are trying to say. Please explain more including why your environment's db schema is different than Github's?`

it is not different. I just saying that if one service uses db id and other is not they can work together.
The reason why builds fail is still unclear for me.

Also, is the different due to differing snapshots versions? incorrect local copies of libraries? Please pull the images to make sure your environment has the latest.

I will check

Also, please analyze the results of the build:
The container logs including the HTTP proxy.
The messages that are printed including those in the received_message table

Will do

@dartartem
Copy link
Contributor

tried to remove all docker images and gralde/maven local repositories. Tests pass.

@dartartem
Copy link
Contributor

@cer I think this image is not up to date: eventuateexamples/eventuate-tram-examples-customers-and-orders-order-service

Looks like It does not support db ids. I think it is published from master, not from development.

@cer
Copy link
Collaborator Author

cer commented Apr 13, 2021

@cer I think this image is not up to date: eventuateexamples/eventuate-tram-examples-customers-and-orders-order-service

Looks like It does not support db ids. I think it is published from master, not from development.

Why 'think'? Please be specific:

$ docker images | grep eventuateexamples/eventuate-tram-examples-customers-and-orders-order-service
eventuateexamples/eventuate-tram-examples-customers-and-orders-order-service           latest                            7230f71ad32a        7 weeks ago         357MB

The build should probably publish separately tagged images from master and development.

But would this cause the tests to fail? And why do they pass locally for you?

@dartartem
Copy link
Contributor

dartartem commented Apr 13, 2021

But would this cause the tests to fail? And why do they pass locally for you?

it is not a global answer, it just a clue :) . Image has no tags, so it's version is not clear.
However, I see that some printed messages have ids (not dbid, just ids), but they should not have them if eventuate.outbox.id specified.

@dartartem
Copy link
Contributor

@cer

I checked messages carefully. There are only CustomerCreatedEvent and OrderCreatedEvent.
It means that OrderCreatedEvent is not handled. Because after order creation, when OrderCreatedEvent handled,
there should be one of: CustomerCreditReservedEvent, CustomerCreditReservationFailedEvent, CustomerValidationEvent.
Unfortunately there are errors at all. In case if cdc processing failed cdc should print errors. When proxy cannot send http request there are errors too. Go customer-service also has error handlers. But there is nothing.

I extended customer-service logging.
Extended logging of proxy.

But after extending customer logs tests become passing:

https://github.com/dartartem/eventuate-tram-golang-examples-customers-and-orders/runs/2341692790
https://github.com/dartartem/eventuate-tram-golang-examples-customers-and-orders/runs/2342824978
https://github.com/dartartem/eventuate-tram-golang-examples-customers-and-orders/runs/2344556738

I have no idea what is happening. But if it repeats, we will have more logged info.

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

No branches or pull requests

2 participants