Skip to content

[Solved] System.ArgumentException in ApnsConnection.Send() #1

Open

Description

@IvoryRubble

What version of PushSharp are you using?

Describe your issue:

System.ArgumentException in ApnsConnection.Send() happens sometimes when call apnsBroker.QueueNotification(apnsNotification); several thousends times in foreach loop
This happens likely because ApnsConnection.notifications Queue is not thread-safe

What are the steps required to reproduce this issue?

Please provide any Exception Stack Traces

System.ArgumentException: Source array was not long enough. Check the source index, length, and the array's lower bounds.
Parameter name: sourceArray
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length)
   at System.Collections.Generic.Queue`1.SetCapacity(Int32 capacity)
   at System.Collections.Generic.Queue`1.Enqueue(T item)
   at PushSharp.Apple.ApnsConnection.Send(CompletableApnsNotification notification)
   at PushSharp.Apple.ApnsServiceConnection.Send(ApnsNotification notification)

Activity

  1. IvoryRubble commented on Sep 18, 2019

    @IvoryRubble
    OwnerAuthor

    One suggestion is properly lock notifications Queue in ApnsConnection.
    Redth#672 (comment)
    #2

  2. IvoryRubble commented on Sep 18, 2019

    @IvoryRubble
    OwnerAuthor

    Another solution is replace notification Queue to ConcurrentQueue
    Redth#770

  3. IvoryRubble commented on Sep 19, 2019

    @IvoryRubble
    OwnerAuthor

    Published nuget package with fix for this issue: https://www.nuget.org/packages/Actonica.PushSharp.Core/
    This package deploys pull-request #2

  4. changed the title [-]System.ArgumentException in ApnsConnection.Send()[/-] [+][Solved] System.ArgumentException in ApnsConnection.Send()[/+] on Sep 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions