-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Iterable Sync timeout/cancelation due to Memory Error/Heartbeat Failure #7558
Comments
Hi @tredencegithub, Looks like it fails when trying to download all send email data with export request. What is the EC2 instance type/size? Does it make sense to temporary instance memory size while we are fixing this? |
@avida The EC2 instance type is t3.xlarge which should be able to easily accommodate the volume as I do not see any spike in the cpu utilization while syncing. Also have selected 8GB for worker and 4GB for server using JAVA_OPTS. I see that the issue has been added to the current sprint. Is there an estimated timeline on it? |
@tredencegithub Yeah t3.xlarge is more than enough. Going to submit fix today. |
Much appreciated. |
@tredencegithub Done, please try to update iterable connector to 0.1.10, it should help |
@avida it error out again at 49M records. Heres the error log : 2021-11-03 19:51:04 INFO () DefaultReplicationWorker(lambda$getReplicationRunnable$2):203 - Records read: 49195000 ValueError: invalid literal for int() with base 16: b'' During handling of the above exception, another exception occurred: Traceback (most recent call last): During handling of the above exception, another exception occurred: Traceback (most recent call last): During handling of the above exception, another exception occurred: Traceback (most recent call last): |
Good news, looks like memory issue fixed. But it also introduced another defect: connector trying to fetch large amount of data with single request. Iterable API use chunked encoding to transfer big piece of analytics report. On other hand I cant produce a lot of requests cause /api/export/data.json request has a limit of 4 per minute. @tredencegithub What start_date parameter are you using? |
@avida Am trying to sync from 01-06-2019. The problem is, i can only select start date and not end date. Hence if i select 01-06-2019, i have to sync till today and do not have an option to break it into parts as i can only change the start date, the end date will always be current date. Kindly do advise on this. |
@tredencegithub Thanks, I suppose breaking this period into 90 days ranges will be enough. I will change connector's code to do it automatically. |
@avida , Just ran a nsync again today and it looks like its failing again. 2021-11-08 14:10:07 INFO () DefaultReplicationWorker(lambda$getReplicationRunnable$2):203 - Records read: 81479000 |
@avida Have you updated the code? |
@tredencegithub Yep, please update iterable connector to 0.1.12 version |
@avida Thank you so much, was able to move 143M records with output as csv. Tring the same with json for better efficiency. |
@avida Hi Dmytro, 2021-11-11 20:14:17 INFO () DefaultReplicationWorker(lambda$getReplicationRunnable$2):203 - Records read: 81329000 |
I tried increasing the part size from 5mb to 20 mb so that it will not reach the 10000 part limit by aws. But got the below error while the source connector was chunking. 2021-11-15 21:33:35 INFO () DefaultReplicationWorker(lambda$getReplicationRunnable$2):203 - Records read: 34927000 During handling of the above exception, another exception occurred: Traceback (most recent call last): During handling of the above exception, another exception occurred: Traceback (most recent call last): During handling of the above exception, another exception occurred: Traceback (most recent call last): Please advice on this. |
@tredencegithub The problem is that you have so much data in your request that API closes connection prematurely. I assume it could happen any time if connection take too long.
Option 1 is preferable but I was reading docs and couldnt find that Iterable source guaranteed data to be sorted by datetime, so it could lead to lose of some records. Thats why I would prefer to go option 2. @sherifnada what do you think? |
Sherif suggested option 3: |
@avida Thank you for the update Dmytro. |
@PVMer @tredencegithub Pull request merged, please update Iterable to 0.1.13 version. Hope it work now :) |
@avida Thank you, I have started the sync and will update you as it complete |
@avida It has errored out :( Says deadline Exceeded. I had increased part size to 20 MB from 5MB to make sure it will not hit the 10000 part limit. Output format is JSON. 2021-11-24 19:00:20 INFO () DefaultReplicationWorker(lambda$getReplicationRunnable$2):203 - Records read: 89342000 |
@tredencegithub Looks like source works fine and there were some problems on destination side being killed by airbyte platform for not responding. @sherifnada @ChristopheDuong What should we do in this case? Forward issue to core team? |
@tredencegithub could you share the full sync log? |
@sherifnada @avida @ChristopheDuong Here is the full sync log as requested. |
Enviroment
Current Behavior
Sync is automatically canceling/timed out while trying to bring in data from email_click and email_send tables. Memory error - and heartbeat failure was found in logs. EC2 instance does not show any spikes and is functioning normal.
Expected Behavior
Sync should initialize and bring in data.
Log Attempt 1 -
Attempt 2 :
logs-1186-2 Edit.txt
logs-970-0 Edit.txt
logs-1186-0 Edit.txt
The text was updated successfully, but these errors were encountered: