[jcifs] Fragmented request PDUs currently not supported when calling getGroupMemberSids

Del Merritt del at alum.mit.edu
Wed Aug 11 11:46:55 MDT 2010


 On 08/11/2010 01:23 PM, Anton Prevosti Vives wrote:
> A customer is reporting the following error:
> jcifs.dcerpc.DcerpcException: Fragmented request PDUs currently not supported
> 	at jcifs.dcerpc.DcerpcHandle.sendrecv(DcerpcHandle.java:176)
> 	at jcifs.smb.SID.resolveSids(SID.java:92)
> 	at jcifs.smb.SID.resolveSids0(SID.java:137)
> 	at jcifs.smb.SID.resolveSids(SID.java:206)
> 	at jcifs.smb.SID.getGroupMemberSids0(SID.java:587)
> 	at jcifs.smb.SID.getGroupMemberSids(SID.java:613)
>
>
> The values we are passing to the method are:
> SID.getGroupMemberSids(server_url, credentials, SID.SID_FLAG_RESOLVE_SIDS)
>
>
> The customer said that the error only happens when the group has more than about 120 members. For a group with 110 members it works fine.
>
> Does anybody know what could be going on?
>
> I understand that JCIFS does not support fragmented *request* PDUs, but as far as I know we are not creating any fragmentation for the requests.
>
> Any help will be appreciated.

Based on the exception you provide, you must be.  Basically, if the
request buffer is larger than the maximum unfragmented size, the code
starts to try to fragment, but then realizes it cannot.

I have implemented limited support for fragmented requests in my local
project, but it's a) not really ready for public use and b) tied to a
port I did of the code into the J2ME space. 

That said,  if you crank up the debugger you can set a  breakpoint at
the appropriate spot in DcerpcHandle.sendrecv() and see just how big the
request packet was; perhaps there's a way your calling application can
trim down the request.

-Del


More information about the jCIFS mailing list