Opened 7 years ago

Closed 7 years ago

Last modified 4 years ago

#3453 closed Defect (Fixed)

Unable to connect to certain networks

Reported by: contact@… Owned by:
Component: Colloquy (iOS) Version: 1.4 (iOS)
Severity: Major Keywords: iPod version not working
Cc:

Description

Version 1.4 (5560) for Colloquy no longer works on my iPod (version 6.0.1). I've been trying to connect to irc.esper.net for about a week now, and I still cannot connect. I opened up console, and this is what it prints while connecting:

ERROR Closing Link: <My Host Mask> (Connection timed out)
GCDAsyncSocket: readEventBlock
GCDAsyncSocket: socketFDBytesAvailable: 91
GCDAsyncSocket: doReadData
GCDAsyncSocket: read from socket = 91
GCDAsyncSocket: copying 91 bytes from preBuffer
GCDAsyncSocket: preBuffer.length = 0
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: socketFDBytesAvailable: 0
GCDAsyncSocket: doReadEOF
GCDAsyncSocket: closeWithError:
GCDAsyncSocket: endConnectTimeout
GCDAsyncSocket: removeStreamsFromRunLoop
GCDAsyncSocket: Removing streams from runloop...
GCDAsyncSocket: dispatch_source_cancel(readSource)
GCDAsyncSocket: dispatch_source_cancel(writeSource)
GCDAsyncSocket: dispatch_resume(writeSource)
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:

I've tried connecting via XChat on my laptop, and it works completely fine, which leads me to believe there's something wrong with Colloquy.

Change History (24)

comment:1 Changed 7 years ago by zach

  • Resolution set to Fixed
  • Status changed from new to closed

comment:2 Changed 7 years ago by anonymous

What version is this fixed in? The client on 1.4 is completely unusable for Undernet.

comment:3 Changed 7 years ago by anonymous

  • Resolution Fixed deleted
  • Status changed from closed to reopened

New version does not fix the problem. All the developer has done is hide these error messages.

The connection issue has not been fixed. Colloquy iOS cannot connect to Undernet anymore. Colloquy Mac has no problems doing so. Both phone and Mac are on the same network.

The socket messages that the developer removed were highlighting the root cause. The messages themselves wasn't the problem.

Can we please reopen this bug?

comment:4 Changed 7 years ago by zach

Well, you just reopened it. And as the developer, I'm going to ask you for more information. What specific server on undernet is this happening on? What does the console show?

comment:5 Changed 7 years ago by anonymous

For undernet: No servers work. The previous version showed the socket errors pasted above for 1.4. The current version shows nothing in console. I have also same result with irc.undernet.org and us.undernet.org.

I have tested with SASL on and off.

Other network's server, ie: irc.dal.net or irc.bondage.com connect with no issue and show normal console output.

Undernet is not down and I can connect through my Mac using Adium and on my iPhone using Flowchat (a discontinued program).

The only difference in the new version seems to be removal of the error messages but not fixing the connection problem.

comment:6 Changed 7 years ago by anonymous

You can replicate it by picking Undernet from Colloquy new connection menu itself. iPad shows same result.

Neither cellular connection nor wifi works for both iPhone and iPad.

comment:7 Changed 7 years ago by anonymous

My ipad just showed me this. 80% of the time the console is blank but sometimes I see this:
GCDAsyncSocket: connectToHost:onPort:viaInterface:withTimeout:error:
GCDAsyncSocket: Dispatching DNS lookup...
GCDAsyncSocket: lookup:host:port:
GCDAsyncSocket: lookup:didSucceedWithAddress4:address6:
GCDAsyncSocket: connectWithAddress4:address6:error:
GCDAsyncSocket: IPv4: 66.198.80.67:6667
GCDAsyncSocket: IPv6: (null):0
GCDAsyncSocket: Creating IPv4 socket
GCDAsyncSocket: Connecting...

comment:8 Changed 7 years ago by anonymous

Here is another bug that is marked fixed but no discussion of root cause or replication:
http://colloquy.info/project/ticket/3461

comment:9 Changed 7 years ago by anonymous

Correction: My ipad log above comes from 1.4. I forgot that on ipad I hadn't updated to 1.4.1. Now that I updated, same connection issues exists but there is no output in the console now..

comment:10 Changed 7 years ago by anonymous

I see on the AppStore? it says: For 1.4.1 changelog - "Don't show socket traffic by default".

comment:11 Changed 7 years ago by anonymous

I notice that on 1.4 these messages show up immediately in console when I hit connect. There is almost no delay..

comment:12 Changed 7 years ago by anonymous

Here is comparison to connection to irc.dal.net:
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(77) preBufferLength(1297)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
372 idrinkdeodorant - * Abide by DALnet's AUP (www.dal.net/aup)
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(114) preBufferLength(1183)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
372 idrinkdeodorant - * Please have fun and enjoy DALnet!
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(93) preBufferLength(1090)
GCDAsyncSocket: completeCurrentRead
372 idrinkdeodorant -
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readEventBlock
GCDAsyncSocket: socketFDBytesAvailable: 1472
GCDAsyncSocket: doReadData
GCDAsyncSocket: No currentRead or kReadsPaused
GCDAsyncSocket: dispatch_suspend(readSource)
372 idrinkdeodorant - /admins
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
372 idrinkdeodorant -

GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(109) preBufferLength(981)
GCDAsyncSocket: completeCurrentRead
372 idrinkdeodorant -
[ brandon - administrator ]
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
372 idrinkdeodorant -
[ klb - assistant administrator ]
GCDAsyncSocket: maybeDequeueRead
372 idrinkdeodorant -

372 idrinkdeodorant -
/operators/
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(108) preBufferLength(873)
372 idrinkdeodorant -
372 idrinkdeodorant - [ key ] [ bel ] [ tyler ] [ teg ]
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
372 idrinkdeodorant - [ Apsu ] [ york` ] [ s2pid ] [ guk ]
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(65) preBufferLength(808)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(112) preBufferLength(696)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(94) preBufferLength(602)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(94) preBufferLength(508)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(88) preBufferLength(420)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(48) preBufferLength(372)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(102) preBufferLength(270)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(102) preBufferLength(168)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(102) preBufferLength(66)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(66) preBufferLength(0)
GCDAsyncSocket: read from socket = 1472
GCDAsyncSocket: read data into preBuffer - preBuffer.length = 1472
GCDAsyncSocket: copying 36 bytes from preBuffer
GCDAsyncSocket: preBuffer.length = 1436
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: dispatch_resume(readSource)
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(102) preBufferLength(1334)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(102) preBufferLength(1232)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(102) preBufferLength(1130)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(102) preBufferLength(1028)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(102) preBufferLength(926)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(102) preBufferLength(824)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(102) preBufferLength(722)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
372 idrinkdeodorant - [ LilMiss? ] [ start-me-up ] [ Priyanka ]
372 idrinkdeodorant -
372 idrinkdeodorant - /
372 idrinkdeodorant -
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
372 idrinkdeodorant -
GCDAsyncSocket: maybeDequeueRead
372 idrinkdeodorant - For IRCop assistance, please /join #operhelp or message one of our
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
372 idrinkdeodorant - friendly server staff listed above.
GCDAsyncSocket: doReadData
372 idrinkdeodorant -
GCDAsyncSocket: copied(102) preBufferLength(620)
372 idrinkdeodorant - For multilingual information:
GCDAsyncSocket: completeCurrentRead
372 idrinkdeodorant -
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
372 idrinkdeodorant - Thank you for using DALnet! We hope you have a pleasant day.
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(48) preBufferLength(572)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(48) preBufferLength(524)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(114) preBufferLength(410)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(83) preBufferLength(327)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(48) preBufferLength(279)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(101) preBufferLength(178)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(48) preBufferLength(130)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(109) preBufferLength(21)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(21) preBufferLength(0)
GCDAsyncSocket: readEventBlock
GCDAsyncSocket: socketFDBytesAvailable: 89
GCDAsyncSocket: doReadData
GCDAsyncSocket: read from socket = 89
GCDAsyncSocket: read data into preBuffer - preBuffer.length = 89
GCDAsyncSocket: copying 46 bytes from preBuffer
GCDAsyncSocket: preBuffer.length = 43
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: copied(43) preBufferLength(0)
GCDAsyncSocket: completeCurrentRead
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: readDataToData:withTimeout:buffer:bufferOffset:maxLength:tag:
GCDAsyncSocket: maybeDequeueRead
GCDAsyncSocket: Dequeued GCDAsyncReadPacket
GCDAsyncSocket: doReadData
GCDAsyncSocket: No data available to read...
376 idrinkdeodorant End of /MOTD command.
idrinkdeodorant MODE idrinkdeodorant +i

comment:13 Changed 7 years ago by zach

  • Summary changed from iPod version not working. to Unable to connect to certain networks

comment:14 Changed 7 years ago by zach

Still working on this, but, update:

This is a problem with how GCDAsyncSocket is resolving the server address to connect to. Unsure why its failing.

comment:15 Changed 7 years ago by zach

  • Resolution set to Fixed
  • Status changed from reopened to closed

Okay. Spoke to an oper at Undernet. Very helpful dude.

Basically, Colloquy tries to connect via irc.undernet.org, which is a round robin that contains all of their servers. The problem with this is that not all of their servers are accessible everywhere. Some servers block US connections, others are US-only. And some servers aren't necessarily up at all right now, due to DDoS (usuallY) (but are still in the round robin for up to two weeks).

The same problem can happen with us.undernet.org, eu.undernet.org and irc.eu.undernet.org, since they are round robin's.

Last edited 7 years ago by zach (previous) (diff)

comment:16 Changed 7 years ago by zach

I've worked around this as best as we can, in r5761.

Last edited 7 years ago by zach (previous) (diff)

comment:17 Changed 7 years ago by anonymous

  • Resolution Fixed deleted
  • Status changed from closed to reopened

irc.undernet.org is not the problem. I can connect to irc.undernet.org and us.undernet.org through both Flowchat and IRC999 - both are apps on ios (try it yourself).

I can also connect to Tampa.FL.us.undernet.org through both apps but not at all through Colloquy.

I also had Colloquy 1.3.5 saved in my iTunes. I can connect to us.undernet.org as well as Tampa.

I think I've tried to present data that's NOT pointing to a server problem. The bug still exists. Simply disallowing the round robin server is not a bug fix and this kind of limitation doesn't exist in any other irc appllcation.

What additional data do you need to demonstrate that this is an issue localized to Colloquy and not an undernet server problem?

comment:18 Changed 7 years ago by anonymous

If you need screenshots from these applications I can post them. Please let me know if you do.

The connection from these apps are instantaneous, from the same IP, and iPhone device. All testing conditions are identical.

comment:19 Changed 7 years ago by anonymous

Also it's not clear the fixes are tested. Did you actually connect to undernet after your fix? Do you have a screenshot?

comment:20 Changed 7 years ago by zach

  • Resolution set to Fixed
  • Status changed from reopened to closed

A version of Colloquy with this fix has not yet been submitted to Apple. Are you building from source yourself?

And due to the nature of round robins (of which, us.undernet.org is one), you might not get the same server every time you connect.

Also, FWIW, I can connect to Tampa.fl.us.undernet.org without a problem.

comment:21 Changed 7 years ago by anonymous

Ok thanks!

comment:22 Changed 6 years ago by anonymous

I am thinking that not

comment:23 Changed 4 years ago by Sorin

I have the same issue. I paid for Colloquy app to use it on undernet irc servers so please fix the problem or give me my money back!

comment:24 Changed 4 years ago by Ichiku126@…

I just paid for this, and i cannot connect. Ive messed with all my settings and everytims i want to message someone, it always says i am not connected. Please tell me how to fix this, or give me my money back.

Note: See TracTickets for help on using tickets.