-
Notifications
You must be signed in to change notification settings - Fork 201
AtlasMap mapping definition not bound to the mapping step #4840
Comments
Yeah, that bad request is new. The UI hits that endpoint to fetch data shapes and the config properties object. Actually nowadays it also hits that endpoint whenever steps are added and removed. Error responses like this just get ignored though when the request is made in this fashion. |
@gashcrumb so I did another test deleting everything (minishift, browser caches) and now I do see the same errors as @riccardo-forina but I got the mapping step properly configured but now it is @nicolaferraro that has the same issue :) |
That |
Had you maybe not rebuilt your UI image in awhile or something perhaps? I think the bad request is a red herring, it's getting made as the component initializes. Looks like the UI isn't sending an empty object or anything at this point, so could be causing the bad request. But then a second request gets made using an empty object, that succeeds alright and then it's fine from there. I'll see about tracking down that initial request though. |
This is really strange.. I hit this problem now, but this morning it was working.. and no redeployments in the meantime. |
@lburgazzoli @nicolaferraro seems that others are having difficult time reproducing this, can you write down the steps taken that manifest this issue? @syndesisio/qe anyone of you experienced something similar to what's described here? |
@zregvart one way to semi-reliably reproduce this is to create an API Provider integration from the todo API, implement Fetch Task and just map the input id to the output id, nothing else. You might have to build it a couple of times to get it though. EDIT: not sure this is right, I wrote this based on our chat conversation, but now I'm thinking this might be a different issue, my problem happens when generating the integration tar to hand off to s2i. |
@asmigala here's the bit from our chat that reminded me of this issue, the exception you got when you tried to publish the integration.
It alludes to a missing mapping that @lburgazzoli also noticed. |
If we add a 2s delay in our automated tests between selecting a mapping and clicking the Done button, it seems the issue does not happen. So that might be a reason why it's tricky to reproduce locally. |
@asmigala Based on your last comment in #4840 (comment) I would say we can lower the priority to |
@heiko-braun not sure, I assume @lburgazzoli originally found it manually. The problem is that if it does happen, the whole integration is completely broken. |
I might be hallucinating, so if it doesn't make sense for any reason please disregard this. So I think this might have to do with #4914 where we might change the data shape and the change in the data shape might trigger a change in the mapping configuration. Not sure @gashcrumb do you think this might be the case, or am I totally of the rails? |
@zregvart the mapping definition is only set on the step here where You know unless there's another bug that we've yet to uncover, but yeah, trouble is I've not been able to reproduce so it's hard to say. I'd say that because the way the mapping is bubbled up from the data mapper host component it could be possible to perhaps very quickly do a mapping and then click 'Done' and wind up with an unset |
I guess @asmigala tell us how to run just that test from syndesis-qe, I think I was able to launch tests from the IDE. |
Ah this comment is probably it. There's a bit of asynchronous communication between the data mapper and the parent controller, so if you quickly press done after creating those mappings I can see how this can happen. Would require some rework to fix properly but I can see if I can figure out another solution. |
So have done some testing here. I actually reproduced this on the first integration I created after a fresh new Syndesis install. Made some code changes, I couldn't reproduce it after that, backed out said changes, still couldn't reproduce it. So now I've been bouncing backend stuff to see if I can get it to reproduce reliably or a second time on the same install, no luck there yet. I will say that normally the callback we supply to the data mapper component fires almost immediately when you release the mouse button on the last part of creating a mapping. The only time it doesn't appear to be so quickly is if I go and redeploy the syndesis-server pod, then there's a startup lag to the data mapper and the first requests out to the data mapper endpoint seem to take a bit longer. This appears to have an impact on when the save callback handler fires which is where we then propagate the saved mapping to parent controller. If that callback handler doesn't fire by the time you click done we've no mapping to save. |
Can we ensure the data mapper-related backend bits are initialized when the server starts up vs. on demand? That'd probably help for this. |
While we ponder that, I'll ensure the "Done" button is disabled while the component hasn't received a mapping, which will at least prevent the user from moving on and creating a mapping step without mapping data. |
I wasn't able to reproduce this on CR1 (1.6.4-fuse...). Closing. |
While testing camel-k and atlasmap I've noticed that clicking to the done button after having defined the mapping seems to do noting but after a while the mapping editor is closed.
When the integration is the deployed, the mapping step lacks mapping definition.
The text was updated successfully, but these errors were encountered: