kangkaisen commented on issue #549: Add a colocate join meta repair tool
URL: https://github.com/apache/incubator-doris/issues/549#issuecomment-455936589
 
 
   last Friday, After I have developed the initial version and tested the FE 
Http API. **I found there were some `100-continue` http header issues**.
   
   Because the  backendsPerBucketSeq meta maybe large, I wanted to extract the 
backendsPerBucketSeq meta by Http post body, not parameter. So I used 
`HttpObjectAggregator` and get http body by `FullHttpRequest`, All Api for 
Colocate Join Meta worked well, but `HttpObjectAggregator`  is conflicting with 
`LoadAction`. `HttpObjectAggregator`  will handle `100-continue` header and 
remove it, which isn't we expected.
   
   So I customized a `DorisHttpObjectAggregator` by copying the 
`HttpObjectAggregator` and removing 
   `100-continue` header handle logic. then, the Java HTTP client could request 
`LoadAction` successfully.  but the curl client request `LoadAction`  still get 
a error:
   
   ```
   * Empty reply from server
   * Connection #0 to host xxx left intact
   curl: (52) Empty reply from server
   ```
   After I debugged, I found which should be the java Http client and curl 
client have different response logic for Netty Server.
   
   I'm not familiar with Netty. I think there are at least three ways to 
resolve this `100-continue` http header issue:
   
   1. extract the backendsPerBucketSeq meta by Http parameter, not http body.
   2. directly parse `HttpRequest`, `HttpContent`, `LastHttpContent`, not use 
`HttpObjectAggregator`
   3. customize `HttpObjectAggregator`, and dive into why curl client get the 
error.
   
   Currently,  I prefer the first way, although which isn't canonical,which is 
simple.
   
   @imay  @morningman What do you think of it?
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@doris.apache.org
For additional commands, e-mail: dev-h...@doris.apache.org

Reply via email to