resend_on_timeout seems to be ignored by Ejabberd - configuration
I'm new to Ejabberd and I've been trying to configure it so that it is robust to connection losses following those recommendations: Dead connections, message loss, and outdated presence
Stream management is activated by default (I use ejabberd 15.07), I set resend_on_timeout to true in ejabberd.yml:
listen:
-
port: 5222
module: ejabberd_c2s
resend_on_timeout: true
max_stanza_size: 65536
shaper: c2s_shaper
access: c2s
starttls: true
certfile: "/Applications/ejabberd-15.07/conf/server.pem"
and mod_offline is activated:
mod_offline:
access_max_user_messages: max_user_offline_messages
Furthermore, the admin web interface confirms that resend_on_timeout is set to true:
[{certfile,
<<47, 65, 112, 112, 108, 105, 99, 97,
116, 105, 111, 110, 115, 47, 101,
106, 97, 98, 98, 101, 114, 100, 45,
49, 53, 46, 48, 55, 47, 99, 111,
110, 102, 47, 115, 101, 114, 118,
101, 114, 46, 112, 101, 109>>},
{starttls, true}, {access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536},
{resend_on_timeout, true}]
Unfortunately, the following scenario does not work as expected:
user_a and user_b connect to ejabberd
user_b tells ejabberd that he implements XEP-0198: Stream Management
user_b looses his connection without properly disconnecting from Ejabberd
user_a sends the message "Test message" to user_b
Ejabberd detects that user_b did not acknowledge the message
2015-09-04 00:30:49.869 [info] <0.458.0>#ejabberd_c2s:handle_unacked_stanzas:2877 1 stanzas were not acknowledged by user_b#localhost/7952730381441319317654314
Ejabberd sends an error message to user_a instead of storing the message offline for user_b
2015-09-04 00:30:49.870 [debug] <0.467.0>#ejabberd_c2s:send_text:1901 Send XML on stream = <<"<message from='user_b#localhost/7952730381441319317654314' to='user_a#localhost/MacBook Air de Cyrille' type='error' id='8C843796-CD60-4111-8754-EBAE20A0D75E'><body>Test message</body>\n<html xmlns='http://jabber.org/protocol/xhtml-im'><body xmlns='http://www.w3.org/1999/xhtml' style='background-color:#e9e9e9;color:#000000;'><span style='font-family: 'Helvetica';font-size: 12px;'>Test message</span></body></html><x xmlns='jabber:x:event'><composing/></x>\n<active xmlns='http://jabber.org/protocol/chatstates'/><error code='503' type='cancel'><service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></message>">>
(The full log is available at the end)
I'm sure I'm missing something but I could not find what.
Many thanks in advance for your help.
Full ejabberd log from step 4 to 6
2015-09-04 00:30:19.862 [debug] <0.466.0>#ejabberd_receiver:process_data:349 Received XML on stream = <<"Test message\nhttp://jabber.org/protocol/xhtml-im\">http://www.w3.org/1999/xhtml\" style=\"background-color:#e9e9e9;color:#000000;\">Test message\nhttp://jabber.org/protocol/chatstates\"/>\n">>
2015-09-04 00:30:19.862 [debug] <0.466.0>#shaper:update:120 State: {maxrate,1000,523.8875943484103,1441319395776490}, Size=477
M=323.1461223235512, I=24086.201
2015-09-04 00:30:19.863 [debug] <0.467.0>#ejabberd_router:do_route:323 route
from {jid,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>}
to {jid,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}
packet {xmlel,<<"message">>,[{<<"to">>,<<"user_b#localhost/7952730381441319317654314">>},{<<"type">>,<<"chat">>},{<<"id">>,<<"8C843796-CD60-4111-8754-EBAE20A0D75E">>}],[{xmlel,<<"body">>,[],[{xmlcdata,<<"Test message">>}]},{xmlcdata,<<"\n">>},{xmlel,<<"html">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/xhtml-im">>}],[{xmlel,<<"body">>,[{<<"xmlns">>,<<"http://www.w3.org/1999/xhtml">>},{<<"style">>,<<"background-color:#e9e9e9;color:#000000;">>}],[{xmlel,<<"span">>,[{<<"style">>,<<"font-family: 'Helvetica';font-size: 12px;">>}],[{xmlcdata,<<"Test message">>}]}]}]},{xmlel,<<"x">>,[{<<"xmlns">>,<<"jabber:x:event">>}],[{xmlel,<<"composing">>,[],[]}]},{xmlcdata,<<"\n">>},{xmlel,<<"active">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/chatstates">>}],[]}]}
2015-09-04 00:30:19.863 [debug] <0.467.0>#ejabberd_local:do_route:296 local route
from {jid,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>}
to {jid,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}
packet {xmlel,<<"message">>,[{<<"to">>,<<"user"...>>},{<<"type">>,<<...>>},{<<...>>,...}],[{xmlel,<<...>>,...},{xmlcdata,...},{...}|...]}
2015-09-04 00:30:19.864 [debug] <0.467.0>#ejabberd_sm:do_route:447 session manager
from {jid,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>}
to {jid,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}
packet {xmlel,<<"message">>,[{<<"to">>,<<"user"...>>},{<<"type">>,<<...>>},{<<...>>,...}],[{xmlel,<<...>>,...},{xmlcdata,...},{...}|...]}
2015-09-04 00:30:19.864 [debug] <0.467.0>#ejabberd_sm:do_route:565 sending to process <0.458.0>
2015-09-04 00:30:19.864 [debug] <0.456.0>#ejabberd_http_bind:prepare_response:917 OutPacket: [{xmlstreamelement,{xmlel,<<"message">>,[{<<"from">>,<<"user_a#localhost/MacBook Air de Cyrille">>},{<<"to">>,<<"user_b#localhost/7952730381441319317654314">>},{<<"type">>,<<"chat">>},{<<"id">>,<<"8C843796-CD60-4111-8754-EBAE20A0D75E">>}],[{xmlel,<<"body">>,[],[{xmlcdata,<<"Test message">>}]},{xmlcdata,<<"\n">>},{xmlel,<<"html">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/xhtml-im">>}],[{xmlel,<<"body">>,[{<<"xmlns">>,<<"http://www.w3.org/1999/xhtml">>},{<<"style">>,<<"background-color:#e9e9e9;color:#000000;">>}],[{xmlel,<<"span">>,[{<<"style">>,<<"font-family: 'Helvetica';font-size: 12px;">>}],[{xmlcdata,<<"Test message">>}]}]}]},{xmlel,<<"x">>,[{<<"xmlns">>,<<"jabber:x:event">>}],[{xmlel,<<"composing">>,[],[]}]},{xmlcdata,<<"\n">>},{xmlel,<<"active">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/chatstates">>}],[]}]}}]
2015-09-04 00:30:19.865 [debug] <0.456.0>#ejabberd_http_bind:send_outpacket:1059 --- outgoing data ---
<body xmlns='http://jabber.org/protocol/httpbind'><message xmlns='jabber:client' from='user_a#localhost/MacBook Air de Cyrille' to='user_b#localhost/7952730381441319317654314' type='chat' id='8C843796-CD60-4111-8754-EBAE20A0D75E'><body>Test message</body>
<html xmlns='http://jabber.org/protocol/xhtml-im'><body xmlns='http://www.w3.org/1999/xhtml' style='background-color:#e9e9e9;color:#000000;'><span style='font-family: 'Helvetica';font-size: 12px;'>Test message</span></body></html><x xmlns='jabber:x:event'><composing/></x>
<active xmlns='http://jabber.org/protocol/chatstates'/></message></body>
--- END ---
2015-09-04 00:30:30.178 [debug] <0.466.0>#ejabberd_receiver:process_data:349 Received XML on stream = <<"\r\n">>
2015-09-04 00:30:30.179 [debug] <0.466.0>#shaper:update:120 State: {maxrate,1000,271.84566900163605,1441319419862845}, Size=2
M=1.1573040463605986, I=10315.866
2015-09-04 00:30:49.865 [info] <0.457.0>#ejabberd_http_bind:handle_info:522 Session timeout. Closing the HTTP bind session: <<"4388150e84a2c3e491fb66d9ff77ae9b78492cde">>
2015-09-04 00:30:49.865 [debug] <0.457.0>#ejabberd_http_bind:terminate:558 terminate: Deleting session 4388150e84a2c3e491fb66d9ff77ae9b78492cde
2015-09-04 00:30:49.865 [info] <0.458.0>#ejabberd_c2s:terminate:1842 ({socket_state,ejabberd_http_bind,{http_bind,<0.457.0>,{{127,0,0,1},55272}},ejabberd_http_bind}) Close session for user_b#localhost/7952730381441319317654314
2015-09-04 00:30:49.866 [debug] <0.458.0>#mod_pubsub:node_action:4118 node_action <<"pubsub.localhost">> <<"flat">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}]
2015-09-04 00:30:49.866 [debug] <0.458.0>#mod_pubsub:node_call:4099 node_call <<"flat">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}]
2015-09-04 00:30:49.866 [debug] <0.458.0>#mod_pubsub:node_action:4118 node_action <<"pubsub.localhost">> <<"hometree">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}]
2015-09-04 00:30:49.867 [debug] <0.458.0>#mod_pubsub:node_call:4099 node_call <<"hometree">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}]
2015-09-04 00:30:49.867 [debug] <0.458.0>#mod_pubsub:node_action:4118 node_action <<"pubsub.localhost">> <<"pep">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}]
2015-09-04 00:30:49.867 [debug] <0.458.0>#mod_pubsub:node_call:4099 node_call <<"pep">> get_entity_affiliations [<<"pubsub.localhost">>,{<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}]
2015-09-04 00:30:49.867 [debug] <0.458.0>#mod_carboncopy:disable:249 disabling for <<"user_b">>
2015-09-04 00:30:49.867 [debug] <0.458.0>#mod_shared_roster:unset_presence:1104 unset_presence for <<"user_b">> # <<"localhost">> / <<"7952730381441319317654314">> -> <<>> (0 resources)
2015-09-04 00:30:49.868 [debug] <0.458.0>#ejabberd_router_multicast:do_route:193 route_multicast
from user_b#localhost/7952730381441319317654314
domain localhost
destinations [<<"user_b#localhost">>]
packet {xmlel,<<"presence">>,[{<<"type">>,<<"unavailable">>}],[]}
2015-09-04 00:30:49.868 [debug] <0.458.0>#ejabberd_router:do_route:323 route
from {jid,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}
to {jid,<<"user_b">>,<<"localhost">>,<<>>,<<"user_b">>,<<"localhost">>,<<>>}
packet {xmlel,<<"presence">>,[{<<"type">>,<<"unavailable">>}],[]}
2015-09-04 00:30:49.868 [debug] <0.458.0>#ejabberd_local:do_route:296 local route
from {jid,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}
to {jid,<<"user_b">>,<<"localhost">>,<<>>,<<"user_b">>,<<"localhost">>,<<>>}
packet {xmlel,<<"presence">>,[{<<"type">>,<<"unav"...>>}],[]}
2015-09-04 00:30:49.869 [debug] <0.458.0>#ejabberd_sm:do_route:447 session manager
from {jid,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}
to {jid,<<"user_b">>,<<"localhost">>,<<>>,<<"user_b">>,<<"localhost">>,<<>>}
packet {xmlel,<<"presence">>,[{<<"type">>,<<"unav"...>>}],[]}
2015-09-04 00:30:49.869 [info] <0.458.0>#ejabberd_c2s:handle_unacked_stanzas:2877 1 stanzas were not acknowledged by user_b#localhost/7952730381441319317654314
2015-09-04 00:30:49.869 [debug] <0.458.0>#ejabberd_router:do_route:323 route
from {jid,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}
to {jid,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>}
packet {xmlel,<<"message">>,[{<<"type">>,<<"error">>},{<<"to">>,<<"user_a#localhost/MacBook Air de Cyrille">>},{<<"from">>,<<"user_b#localhost/7952730381441319317654314">>},{<<"id">>,<<"8C843796-CD60-4111-8754-EBAE20A0D75E">>}],[{xmlel,<<"body">>,[],[{xmlcdata,<<"Test message">>}]},{xmlcdata,<<"\n">>},{xmlel,<<"html">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/xhtml-im">>}],[{xmlel,<<"body">>,[{<<"xmlns">>,<<"http://www.w3.org/1999/xhtml">>},{<<"style">>,<<"background-color:#e9e9e9;color:#000000;">>}],[{xmlel,<<"span">>,[{<<"style">>,<<"font-family: 'Helvetica';font-size: 12px;">>}],[{xmlcdata,<<"Test message">>}]}]}]},{xmlel,<<"x">>,[{<<"xmlns">>,<<"jabber:x:event">>}],[{xmlel,<<"composing">>,[],[]}]},{xmlcdata,<<"\n">>},{xmlel,<<"active">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/chatstates">>}],[]},{xmlel,<<"error">>,[{<<"code">>,<<"503">>},{<<"type">>,<<"cancel">>}],[{xmlel,<<"service-unavailable">>,[{<<"xmlns">>,<<"urn:ietf:params:xml:ns:xmpp-stanzas">>}],[]}]}]}
2015-09-04 00:30:49.870 [debug] <0.458.0>#ejabberd_local:do_route:296 local route
from {jid,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}
to {jid,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>}
packet {xmlel,<<"message">>,[{<<"type">>,<<"erro"...>>},{<<"to">>,<<...>>},{<<...>>,...},{...}],[{xmlel,<<...>>,...},{xmlcdata,...},{...}|...]}
2015-09-04 00:30:49.870 [debug] <0.458.0>#ejabberd_sm:do_route:447 session manager
from {jid,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>,<<"user_b">>,<<"localhost">>,<<"7952730381441319317654314">>}
to {jid,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>,<<"user_a">>,<<"localhost">>,<<"MacBook Air de Cyrille">>}
packet {xmlel,<<"message">>,[{<<"type">>,<<"erro"...>>},{<<"to">>,<<...>>},{<<...>>,...},{...}],[{xmlel,<<...>>,...},{xmlcdata,...},{...}|...]}
2015-09-04 00:30:49.870 [debug] <0.458.0>#ejabberd_sm:do_route:565 sending to process <0.467.0>
2015-09-04 00:30:49.870 [debug] <0.467.0>#ejabberd_c2s:send_text:1901 Send XML on stream = <<"<message from='user_b#localhost/7952730381441319317654314' to='user_a#localhost/MacBook Air de Cyrille' type='error' id='8C843796-CD60-4111-8754-EBAE20A0D75E'><body>Test message</body>\n<html xmlns='http://jabber.org/protocol/xhtml-im'><body xmlns='http://www.w3.org/1999/xhtml' style='background-color:#e9e9e9;color:#000000;'><span style='font-family: 'Helvetica';font-size: 12px;'>Test message</span></body></html><x xmlns='jabber:x:event'><composing/></x>\n<active xmlns='http://jabber.org/protocol/chatstates'/><error code='503' type='cancel'><service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></message>">>
You configured resend_on_timeout option on ejabberd c2s listener, but you seem to be using http-bind / Bosh listener.
It should work as expected if you set it up on your http bind listener.
Related
Unable to switch to WEBVIEW in Appium v2 Beta in Android - Error: 'unable to connect to renderer'
Unable to switch to web view context in Appium v2.0.0-beta.46 and v2.0.0-beta.47 Same code working fine in Appium v1.22.3 Error: Got response with status 500: {"value":{"error":"disconnected","message":"disconnected: unable to connect to renderer\n (failed to check if window was closed: disconnected: unable to connect to renderer Code: //Driver details capability.setCapability("device", aDevice); capability.setCapability("newCommandTimeout", 100000); capability.setCapability("platformName", platform); capability.setCapability("udid", aUdid); capability.setCapability("appPackage", appPkg); capability.setCapability("appActivity", appAct); capability.setCapability("automationName", "UiAutomator2"); capability.setCapability("setWebContentsDebuggingEnabled", true); AppiumDriver driver = new AndroidDriver(new URL(serverUrl), capability); Set<String> contexts = ((SupportsContextSwitching) driver()).getContextHandles(); System.out.println("CONTEXT="+contexts); //prints CONTEXT=[NATIVE_APP, WEBVIEW_chrome] for (String context : contexts) { if (context.contains("WEBVIEW")) { ((SupportsContextSwitching) driver()).context(context); break; } } Exceptions: io.appium.java_client.NoSuchContextException: An unknown server-side error occurred while processing the command. Original error: An unknown server-side error occurred while processing the command. Original error: disconnected: unable to connect to renderer (failed to check if window was closed: disconnected: unable to connect to renderer) (Session info: chrome=108.0.5359.79) Build info: version: '4.6.0', revision: '79f1c02ae20' System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '12.6', java.version: '11.0.10' Driver info: io.appium.java_client.android.AndroidDriver Command: [0b2b612b-473a-456b-a281-842d6e138aa9, switchToContext {name=WEBVIEW_chrome}] Capabilities {appium:appActivity: com.tech.service..., appium:appPackage: com.tech.service..., appium:applicationCacheEnabled: false, appium:automationName: UIAutomator2, appium:databaseEnabled: false, appium:desired: {appActivity: com.tech.service..., appPackage: com.tech.service..., applicationCacheEnabled: false, automationName: UIAutomator2, device: Pixel 6, newCommandTimeout: 100000, platformName: android, setWebContentsDebuggingEnabled: true, udid: RXCABCD}, appium:device: Pixel 6, appium:deviceApiLevel: 31, appium:deviceManufacturer: samsung, appium:deviceModel: SM-G770F, appium:deviceName: RXCABCD, appium:deviceScreenDensity: 420, appium:deviceScreenSize: 1080x2400, appium:deviceUDID: RXCABCD, appium:javascriptEnabled: true, appium:locationContextEnabled: false, appium:networkConnectionEnabled: true, appium:newCommandTimeout: 100000, appium:pixelRatio: 2.625, appium:platformVersion: 12, appium:setWebContentsDebuggingEnabled: true, appium:statBarHeight: 90, appium:takesScreenshot: true, appium:udid: RXCABCD, appium:viewportRect: {height: 2091, left: 0, top: 90, width: 1080}, appium:warnings: {}, appium:webStorageEnabled: false, platformName: ANDROID} Session ID: 0b2b612b-473a-456b-a281-842d6e138aa9 Appium Logs: [debug] [AndroidDriver] Getting a list of available webviews [debug] [ADB] Running '/Users/tech/Library/Android/sdk/platform-tools/adb -P 5037 -s RXCABCD shell cat /proc/net/unix' [debug] [AndroidDriver] Parsed 1 active devtools socket: ["#chrome_devtools_remote"] [debug] [AndroidDriver] Collecting CDP data of 1 webview [debug] [AndroidDriver] Forwarding remote port chrome_devtools_remote to a local port in range 10900..11000 [debug] [AndroidDriver] You could use the 'webviewDevtoolsPort' capability to customize the starting port number [debug] [ADB] Running '/Users/tech/Library/Android/sdk/platform-tools/adb -P 5037 -s RXCABCD forward tcp:10900 localabstract:chrome_devtools_remote' [debug] [ADB] Removing forwarded port socket connection: 10900 [debug] [ADB] Running '/Users/tech/Library/Android/sdk/platform-tools/adb -P 5037 -s RXCABCD forward --remove tcp:10900' [debug] [AndroidDriver] CDP data collection completed [debug] [AndroidDriver] Found 1 webview: ["WEBVIEW_chrome"] [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] Available contexts: ["NATIVE_APP","WEBVIEW_chrome"] [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] Connecting to chrome-backed webview context 'WEBVIEW_chrome' [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] Identified chromeAndroidPackage as 'com.android.chrome' for context 'WEBVIEW_chrome' by CDP [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] A port was not given, using random free port: 8000 [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] Passing web view details to the Chromedriver constructor: { [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "info": { [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "Android-Package": "com.android.chrome", [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "Browser": "Chrome/108.0.5359.79", [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "Protocol-Version": "1.3", [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "User-Agent": "Mozilla/5.0 (Linux; Android 12; SM-G770F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Mobile Safari/537.36", [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "V8-Version": "10.8.168.21", [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "WebKit-Version": "537.36 (#5194e1e1073e30a8fc93c72c2aee4bc572f5b07a)", [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "webSocketDebuggerUrl": "ws://127.0.0.1:10900/devtools/browser" [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] }, [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "process": { [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "name": "chrome", [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] "id": null [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] } [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] } [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] Automated Chromedriver download is disabled. Use 'chromedriver_autodownload' server feature to enable it [debug] [AndroidDriver] Precalculated Chromedriver capabilities: { [debug] [AndroidDriver] "androidPackage": "com.android.chrome", [debug] [AndroidDriver] "androidUseRunningApp": true, [debug] [AndroidDriver] "androidDeviceSerial": "RXCABCD" [debug] [AndroidDriver] } [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] Before starting chromedriver, androidPackage is 'com.android.chrome' [debug] [Chromedriver#4fe7] Changed state to 'starting' [debug] [Chromedriver#4fe7] Using the static Chromedriver->Chrome mapping [debug] [Chromedriver#4fe7] The most recent known Chrome version: 108.0.5359 [debug] [Chromedriver#4fe7] Found 1 executable in '/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/mac' [debug] [Chromedriver#4fe7] The following Chromedriver executables were found: [debug] [Chromedriver#4fe7] '/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/mac/chromedriver_mac64_v108.0.5359.71' (version '108.0.5359.71', minimum Chrome version '108.0.5359') [debug] [Chromedriver#4fe7] Browser version in the supplied details: Chrome/108.0.5359.79 [debug] [Chromedriver#4fe7] Found Chrome bundle 'undefined' version '108.0.5359' [debug] [Chromedriver#4fe7] Found 1 executable capable of automating Chrome '108.0.5359'. [debug] [Chromedriver#4fe7] Choosing the most recent, '/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/mac/chromedriver_mac64_v108.0.5359.71'. [debug] [Chromedriver#4fe7] If a specific version is required, specify it with the chromedriverExecutabledesired capability. [Chromedriver#4fe7] Set chromedriver binary as: /Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/mac/chromedriver_mac64_v108.0.5359.71 [debug] [Chromedriver#4fe7] Killing any old chromedrivers, running: pkill -15 -f "/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/mac/chromedriver_mac64_v108.0.5359.71.*--port=8000" [Chromedriver#4fe7] No old chromedrivers seem to exist [debug] [Chromedriver#4fe7] Cleaning this device's adb forwarded port socket connections: RXCABCD [debug] [ADB] List forwarding ports [debug] [ADB] Running '/Users/tech/Library/Android/sdk/platform-tools/adb -P 5037 -s RXCABCD forward --list' [Chromedriver#4fe7] Spawning chromedriver with: /Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/mac/chromedriver_mac64_v108.0.5359.71 --port=8000 --adb-port=5037 --verbose [debug] [Chromedriver#4fe7] Chromedriver version: '108.0.5359.71' [debug] [Chromedriver#4fe7] Matched '/status' to command name 'getStatus' [debug] [Chromedriver#4fe7] Proxying [GET /status] to [GET http://127.0.0.1:8000/status] with no body [debug] [Chromedriver#4fe7] Got response with status 200: {"value":{"build":{"version":"108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359#{#1016})"},"message":"ChromeDriver ready for new sessions.","os":{"arch":"x86_64","name":"Mac OS X","version":"12.6.0"},"ready":true}} [Chromedriver#4fe7] Starting W3C Chromedriver session with capabilities: { [Chromedriver#4fe7] "capabilities": { [Chromedriver#4fe7] "alwaysMatch": { [Chromedriver#4fe7] "goog:chromeOptions": { [Chromedriver#4fe7] "androidPackage": "com.android.chrome", [Chromedriver#4fe7] "androidUseRunningApp": true, [Chromedriver#4fe7] "androidDeviceSerial": "RXCABCD" [Chromedriver#4fe7] }, [Chromedriver#4fe7] "goog:loggingPrefs": { [Chromedriver#4fe7] "browser": "ALL" [Chromedriver#4fe7] } [Chromedriver#4fe7] } [Chromedriver#4fe7] } [Chromedriver#4fe7] } [debug] [Chromedriver#4fe7] Matched '/session' to command name 'createSession' [debug] [Chromedriver#4fe7] Proxying [POST /session] to [POST http://127.0.0.1:8000/session] with body: {"capabilities":{"alwaysMatch":{"goog:chromeOptions":{"androidPackage":"com.android.chrome","androidUseRunningApp":true,"androidDeviceSerial":"RXCABCD"},"goog:loggingPrefs":{"browser":"ALL"}}}} [debug] [Chromedriver#4fe7] Webview version: 'Chrome/108.0.5359.79' [Chromedriver#4fe7] Got response with status 500: {"value":{"error":"disconnected","message":"disconnected: unable to connect to renderer\n (failed to check if window was closed: disconnected: unable to connect to renderer)\n (Session info: chrome=108.0.5359.79)","stacktrace":"0 chromedriver_mac64_v108.0.5359.71 0x0000000101a45f38 chromedriver_mac64_v108.0.5359.71 + 4910904\n1 chromedriver_mac64_v108.0.5359.71 0x00000001019c5a03 chromedriver_mac64_v108.0.5359.71 + 4385283\n2 chromedriver_mac64_v108.0.5359.71 0x000000010160a747 chromedriver_mac64_v108.0.5359.71 + 472903\n3 chromedriver_mac64_v108.0.5359.71 0x00000001015ef7ea chromedriver_mac64_v108.0.5359.71 + 362474\n4 chromedriver_mac64_v108.0.5359.71 0x00000001015dee19 chromedriver_mac64_v108.0.5359.71 + 294425\n5 chromedriver_mac64_v108.0.5359.71 0x00000001015de9f5 chromedriver_mac64_v108.0.5359.71 + 293365\n6 chromedriver_mac64_v108.0.5359.71 0x000000010167e578 chromedriver_mac64_v108.0.5359.71 + 947576\n7 chromedriver_mac64_v108.0.5359.71 0x000000010167dcbf chromedri... [debug] [W3C] Matched W3C error code 'disconnected' to UnknownError [debug] [Chromedriver#4fe7] UnknownError: An unknown server-side error occurred while processing the command. Original error: disconnected: unable to connect to renderer [debug] [Chromedriver#4fe7] (failed to check if window was closed: disconnected: unable to connect to renderer) [debug] [Chromedriver#4fe7] (Session info: chrome=108.0.5359.79) [debug] [Chromedriver#4fe7] at errorFromW3CJsonCode (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/#appium/base-driver/lib/protocol/errors.js:928:23) [debug] [Chromedriver#4fe7] at ProxyRequestError.getActualError (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/#appium/base-driver/lib/protocol/errors.js:798:14) [debug] [Chromedriver#4fe7] at JWProxy.command (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/#appium/base-driver/lib/jsonwp-proxy/proxy.js:340:19) [debug] [Chromedriver#4fe7] at processTicksAndRejections (node:internal/process/task_queues:95:5) [debug] [Chromedriver#4fe7] at Chromedriver.startSession (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/lib/chromedriver.js:597:5) [debug] [Chromedriver#4fe7] at Chromedriver.start (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/lib/chromedriver.js:528:7) [debug] [Chromedriver#4fe7] at AndroidUiautomator2Driver.setupNewChromedriver (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/context.js:471:3) [debug] [Chromedriver#4fe7] at AndroidUiautomator2Driver.startChromedriverProxy (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/context.js:217:10) [debug] [Chromedriver#4fe7] at AndroidUiautomator2Driver.switchContext (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/context.js:124:5) [debug] [Chromedriver#4fe7] at AndroidUiautomator2Driver.setContext (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/context.js:51:3) [Chromedriver#4fe7] Chromedriver exited unexpectedly with code null, signal SIGTERM [debug] [Chromedriver#4fe7] Changed state to 'stopped' [Chromedriver#4fe7] An unknown server-side error occurred while processing the command. Original error: disconnected: unable to connect to renderer [Chromedriver#4fe7] (failed to check if window was closed: disconnected: unable to connect to renderer) [Chromedriver#4fe7] (Session info: chrome=108.0.5359.79) [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] Encountered internal error running command: Error: An unknown server-side error occurred while processing the command. Original error: disconnected: unable to connect to renderer [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] (failed to check if window was closed: disconnected: unable to connect to renderer) [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] (Session info: chrome=108.0.5359.79) [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] at Object.errorAndThrow (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/#appium/support/lib/logging.js:115:34) [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] at Chromedriver.start (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/lib/chromedriver.js:553:16) [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] at AndroidUiautomator2Driver.setupNewChromedriver (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/context.js:471:3) [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] at AndroidUiautomator2Driver.startChromedriverProxy (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/context.js:217:10) [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] at AndroidUiautomator2Driver.switchContext (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/context.js:124:5) [debug] [AndroidUiautomator2Driver#20f3 (0b2b612b)] at AndroidUiautomator2Driver.setContext (/Users/tech/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/context.js:51:3) [HTTP] <-- POST /wd/hub/session/0b2b612b-473a-456b-a281-842d6e138aa9/context 500 720 ms - 1008
ejabberd ACME unexpected content type when it receives certificate
I am running a processone/ejabberd container that i am trying to get to request a certificate via ACME to a smallstep ca container. The request fails with this error: #{<<"kid">> => <<"https://ca.mydomain.local:8000/acme/acme/account/svUkT7QwXD4pBqyrVdys94VMeVCeeo0D">>, <<"nonce">> => <<"..">>, <<"url">> => <<"https://ca.mydomain.local:8000/acme/acme/certificate/Jks2zJjdJwqDzE7VSsLM0TOaAzzYUB2P">>}} 2022-11-07 08:30:28.355858+00:00 [debug] HTTP request: {post,{"https://ca.mydomain.local:8000/acme/acme/certificate/Jks2zJjdJwqDzE7VSsLM0TOaAzzYUB2P", [],"application/jose+json", <<"{\"signature\":\"....\",\"protected\":\"......\",\"payload\":\"\"}">>}} 2022-11-07 08:30:28.608072+00:00 [debug] HTTP response: {{"HTTP/1.1",200,"OK"}, [{"cache-control","no-store"}, {"date","Mon, 07 Nov 2022 08:30:28 GMT"}, {"content-length","2108"}, {"content-type", "application/pem-certificate-chain; charset=utf-8"}, {"link", "<https://ca.mydomain.local:8000/acme/acme/directory>;rel=\"index\""}, {"replay-nonce", ".."}], <<"-----BEGIN CERTIFICATE-----........\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----........\n-----END CERTIFICATE-----\n">>} 2022-11-07 08:30:28.609162+00:00 [error] Failed to request certificate for jabber-gw.mydomain.me: HTTP error: unexpected content type: application/pem-certificate-chain; charset=utf-8 2022-11-07 08:30:28.609456+00:00 [debug] Unregistering ACME challenge #Ref<0.1802325958.1657798659.124306> 2022-11-07 08:35:26.914567+00:00 [debug] Error when retrieving http headers gen_tcp: timeout Any ideas on why its not happy with the content type and how to resolve? Prior to the error message, the logs show what looks like a successful ACME challenge: [<<".well-known">>,<<"acme-challenge">>, <<"3rNIelLxSuDU0tWZgb3yEw5sL6d6Z61J">>] matches [<<".well-known">>, <<"acme-challenge">>] 2022-11-04 04:28:12.436337+00:00 [debug] Received ACME challenge request for token: blah 2022-11-04 04:28:12.546710+00:00 [debug] HTTP response: {{"HTTP/1.1",200,"OK"}, The smallstep container was built with this great blog.
Unable to start nginx-ingress-controller Readiness and Liveness probes failed
I have installed using instructions at this link for the Install NGINX using NodePort option. When I do ks logs -f ingress-nginx-controller-7f48b8-s7pg4 -n ingress-nginx I get : W0304 09:33:40.568799 8 client_config.go:614] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work. I0304 09:33:40.569097 8 main.go:241] "Creating API client" host="https://10.96.0.1:443" I0304 09:33:40.584904 8 main.go:285] "Running in Kubernetes cluster" major="1" minor="23" git="v1.23.1+k0s" state="clean" commit="b230d3e4b9d6bf4b731d96116a6643786e16ac3f" platform="linux/amd64" I0304 09:33:40.911443 8 main.go:105] "SSL fake certificate created" file="/etc/ingress-controller/ssl/default-fake-certificate.pem" I0304 09:33:40.916404 8 main.go:115] "Enabling new Ingress features available since Kubernetes v1.18" W0304 09:33:40.918137 8 main.go:127] No IngressClass resource with name nginx found. Only annotation will be used. I0304 09:33:40.942282 8 ssl.go:532] "loading tls certificate" path="/usr/local/certificates/cert" key="/usr/local/certificates/key" I0304 09:33:40.977766 8 nginx.go:254] "Starting NGINX Ingress controller" I0304 09:33:41.007616 8 event.go:282] Event(v1.ObjectReference{Kind:"ConfigMap", Namespace:"ingress-nginx", Name:"ingress-nginx-controller", UID:"1a4482d2-86cb-44f3-8ebb-d6342561892f", APIVersion:"v1", ResourceVersion:"987560", FieldPath:""}): type: 'Normal' reason: 'CREATE' ConfigMap ingress-nginx/ingress-nginx-controller E0304 09:33:42.087113 8 reflector.go:138] k8s.io/client-go#v0.20.2/tools/cache/reflector.go:167: Failed to watch *v1beta1.Ingress: failed to list *v1beta1.Ingress: the server could not find the requested resource E0304 09:33:43.041954 8 reflector.go:138] k8s.io/client-go#v0.20.2/tools/cache/reflector.go:167: Failed to watch *v1beta1.Ingress: failed to list *v1beta1.Ingress: the server could not find the requested resource E0304 09:33:44.724681 8 reflector.go:138] k8s.io/client-go#v0.20.2/tools/cache/reflector.go:167: Failed to watch *v1beta1.Ingress: failed to list *v1beta1.Ingress: the server could not find the requested resource E0304 09:33:48.303789 8 reflector.go:138] k8s.io/client-go#v0.20.2/tools/cache/reflector.go:167: Failed to watch *v1beta1.Ingress: failed to list *v1beta1.Ingress: the server could not find the requested resource E0304 09:33:59.113203 8 reflector.go:138] k8s.io/client-go#v0.20.2/tools/cache/reflector.go:167: Failed to watch *v1beta1.Ingress: failed to list *v1beta1.Ingress: the server could not find the requested resource E0304 09:34:16.727052 8 reflector.go:138] k8s.io/client-go#v0.20.2/tools/cache/reflector.go:167: Failed to watch *v1beta1.Ingress: failed to list *v1beta1.Ingress: the server could not find the requested resource I0304 09:34:39.216165 8 main.go:187] "Received SIGTERM, shutting down" I0304 09:34:39.216773 8 nginx.go:372] "Shutting down controller queues" E0304 09:34:39.217779 8 store.go:178] timed out waiting for caches to sync I0304 09:34:39.217856 8 nginx.go:296] "Starting NGINX process" I0304 09:34:39.218007 8 leaderelection.go:243] attempting to acquire leader lease ingress-nginx/ingress-controller-leader-nginx... I0304 09:34:39.219741 8 queue.go:78] "queue has been shutdown, failed to enqueue" key="&ObjectMeta{Name:initial-sync,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{},OwnerReferences:[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},}" I0304 09:34:39.219787 8 nginx.go:316] "Starting validation webhook" address=":8443" certPath="/usr/local/certificates/cert" keyPath="/usr/local/certificates/key" I0304 09:34:39.242501 8 leaderelection.go:253] successfully acquired lease ingress-nginx/ingress-controller-leader-nginx I0304 09:34:39.242807 8 queue.go:78] "queue has been shutdown, failed to enqueue" key="&ObjectMeta{Name:sync status,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{},OwnerReferences:[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},}" I0304 09:34:39.242837 8 status.go:84] "New leader elected" identity="ingress-nginx-controller-7f48b8-s7pg4" I0304 09:34:39.252025 8 status.go:204] "POD is not ready" pod="ingress-nginx/ingress-nginx-controller-7f48b8-s7pg4" node="fbcdcesdn02" I0304 09:34:39.255282 8 status.go:132] "removing value from ingress status" address=[] I0304 09:34:39.255328 8 nginx.go:380] "Stopping admission controller" I0304 09:34:39.255379 8 nginx.go:388] "Stopping NGINX process" E0304 09:34:39.255664 8 nginx.go:319] "Error listening for TLS connections" err="http: Server closed" 2022/03/04 09:34:39 [notice] 43#43: signal process started I0304 09:34:40.263361 8 nginx.go:401] "NGINX process has stopped" I0304 09:34:40.263396 8 main.go:195] "Handled quit, awaiting Pod deletion" I0304 09:34:50.263585 8 main.go:198] "Exiting" code=0 When I do ks describe pod ingress-nginx-controller-7f48b8-s7pg4 -n ingress-nginx I get : Name: ingress-nginx-controller-7f48b8-s7pg4 Namespace: ingress-nginx Priority: 0 Node: fxxxxxxxx/10.XXX.XXX.XXX Start Time: Fri, 04 Mar 2022 08:12:57 +0200 Labels: app.kubernetes.io/component=controller app.kubernetes.io/instance=ingress-nginx app.kubernetes.io/name=ingress-nginx pod-template-hash=7f48b8 Annotations: kubernetes.io/psp: 00-k0s-privileged Status: Running IP: 10.244.0.119 IPs: IP: 10.244.0.119 Controlled By: ReplicaSet/ingress-nginx-controller-7f48b8 Containers: controller: Container ID: containerd://638ff4d63b7ba566125bd6789d48db6e8149b06cbd9d887ecc57d08448ba1d7e Image: k8s.gcr.io/ingress-nginx/controller:v0.48.1#sha256:e9fb216ace49dfa4a5983b183067e97496e7a8b307d2093f4278cd550c303899 Image ID: k8s.gcr.io/ingress-nginx/controller#sha256:e9fb216ace49dfa4a5983b183067e97496e7a8b307d2093f4278cd550c303899 Ports: 80/TCP, 443/TCP, 8443/TCP Host Ports: 0/TCP, 0/TCP, 0/TCP Args: /nginx-ingress-controller --election-id=ingress-controller-leader --ingress-class=nginx --configmap=$(POD_NAMESPACE)/ingress-nginx-controller --validating-webhook=:8443 --validating-webhook-certificate=/usr/local/certificates/cert --validating-webhook-key=/usr/local/certificates/key State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: Completed Exit Code: 0 Started: Fri, 04 Mar 2022 11:33:40 +0200 Finished: Fri, 04 Mar 2022 11:34:50 +0200 Ready: False Restart Count: 61 Requests: cpu: 100m memory: 90Mi Liveness: http-get http://:10254/healthz delay=10s timeout=1s period=10s #success=1 #failure=5 Readiness: http-get http://:10254/healthz delay=10s timeout=1s period=10s #success=1 #failure=3 Environment: POD_NAME: ingress-nginx-controller-7f48b8-s7pg4 (v1:metadata.name) POD_NAMESPACE: ingress-nginx (v1:metadata.namespace) LD_PRELOAD: /usr/local/lib/libmimalloc.so Mounts: /usr/local/certificates/ from webhook-cert (ro) /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zvcnr (ro) Conditions: Type Status Initialized True Ready False ContainersReady False PodScheduled True Volumes: webhook-cert: Type: Secret (a volume populated by a Secret) SecretName: ingress-nginx-admission Optional: false kube-api-access-zvcnr: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: <nil> DownwardAPI: true QoS Class: Burstable Node-Selectors: kubernetes.io/os=linux Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning Unhealthy 23m (x316 over 178m) kubelet Readiness probe failed: HTTP probe failed with statuscode: 500 Warning BackOff 8m52s (x555 over 174m) kubelet Back-off restarting failed container Normal Pulled 3m54s (x51 over 178m) kubelet Container image "k8s.gcr.io/ingress-nginx/controller:v0.48.1#sha256:e9fb216ace49dfa4a5983b183067e97496e7a8b307d2093f4278cd550c303899" already present on machine When I try to curl the health endpoints I get Connection refused : The state of the pods shows that they are both not ready : NAME READY STATUS RESTARTS AGE ingress-nginx-admission-create-4hzzk 0/1 Completed 0 3h30m ingress-nginx-controller-7f48b8-s7pg4 0/1 CrashLoopBackOff 63 (91s ago) 3h30m I have tried to increase the values for initialDelaySeconds in /etc/nginx/nginx.conf but when I attempt to exec into the container (ks exec -it -n ingress-nginx ingress-nginx-controller-7f48b8-s7pg4 -- bash) I also get an error error: unable to upgrade connection: container not found ("controller") I am not really sure where I should be looking in the overall setup.
I have installed using instructions at this link for the Install NGINX using NodePort option. The problem is that you are using outdated k0s documentation: https://docs.k0sproject.io/v1.22.2+k0s.1/examples/nginx-ingress/ You should use this link instead: https://docs.k0sproject.io/main/examples/nginx-ingress/ You will install the controller-v1.0.0 version on your Kubernetes cluster by following the actual documentation link. $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.0.0/deploy/static/provider/baremetal/deploy.yaml The result is: $ sudo k0s kubectl get pods -n ingress-nginx NAME READY STATUS RESTARTS AGE ingress-nginx-admission-create-dw2f4 0/1 Completed 0 11m ingress-nginx-admission-patch-4dmpd 0/1 Completed 0 11m ingress-nginx-controller-75f58fbf6b-xrfxr 1/1 Running 0 11m
Switching to webview context will got exception "chrome not reachable" after resetApp
Environment Appium : 1.6.4 OS : Ubuntu 16.04 64bit Node.js : 7.9.0 Android : 5.1 Device :1501-M02 API :java Appium CLI Details I am using spock as test framework,with blow code: class Test{ AndroidDriver<RemoteWebElement> driver; DesiredCapabilities cap=DesiredCapabilities.android(); ........ def setup(){ //setup driver ..... cap.setCapability(NO_RESET, "true"); cap.setCapability(FULL_RESET, "false"); ..... cap.setCapability(RECREATE_CHROME_DRIVER_SESSIONS, "true"); ....... driver.context("WEBVIEW_com.domain.pkg"); } def "test1"(){} def "test2"(){} def cleanup(){ driver.resetApp(); } } In eclipse,If right clicking test1 or test2->run as->junit test,both two run as expected,but if right clicking Test(class)->run as->junit test,the first test works,and the second test will throw exception: org.openqa.selenium.WebDriverException: chrome not reachable (Session info: webview=39.0.0.0) (Driver info: chromedriver=2.28.455506 if replacing cleanup() with this: def cleanup(){ driver.quit(); } all works as expected,but each test will reinitialize a lot of staff which wastes huge time, so driver.resetApp() not work as expected,is this a bug or do I do something wrong? appium log like this: [debug] [ADB] Running '/opt/android-sdk/platform-tools/adb' with args: ["-P",5037,"-s","MB8DW44999999999","shell","am","force-stop","com.vsi.pd.doctor"] [debug] [MJSONWP] Responding to client with driver.closeApp() result: null [HTTP] <-- POST /wd/hub/session/ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2/appium/app/close 200 1099 ms - 76 [HTTP] --> POST /wd/hub/session/ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2/appium/app/launch {} [debug] [MJSONWP] Calling AppiumDriver.launchApp() with args: ["ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2"] [AndroidDriver] No app sent in, not parsing package/activity [debug] [AndroidDriver] No app capability. Assuming it is already on the device [debug] [ADB] Device API level: 22 [debug] [ADB] Getting connected devices... [debug] [ADB] 1 device(s) connected [debug] [ADB] Running '/opt/android-sdk/platform-tools/adb' with args: ["-P",5037,"-s","MB8DW44999999999","shell","am","start","-W","-n","com.vsi.pd.doctor/.MainActivity","-S","-a","android.intent.action.MAIN","-c","android.intent.category.LAUNCHER","-f","0x10200000"] [debug] [MJSONWP] Responding to client with driver.launchApp() result: null [HTTP] <-- POST /wd/hub/session/ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2/appium/app/launch 200 1987 ms - 76 [HTTP] --> POST /wd/hub/session/ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2/context {"name":"WEBVIEW_com.vsi.pd.doctor"} [debug] [MJSONWP] Calling AppiumDriver.setContext() with args: ["WEBVIEW_com.vsi.pd.doctor","ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2"] [debug] [AndroidDriver] Getting a list of available webviews [debug] [ADB] Getting connected devices... [debug] [ADB] 1 device(s) connected [debug] [ADB] Running '/opt/android-sdk/platform-tools/adb' with args: ["-P",5037,"-s","MB8DW44999999999","shell","cat","/proc/net/unix"] [debug] [AndroidDriver] WEBVIEW_17929 mapped to pid 17929 [debug] [AndroidDriver] Getting process name for webview [debug] [ADB] Getting connected devices... [debug] [ADB] 1 device(s) connected [debug] [ADB] Running '/opt/android-sdk/platform-tools/adb' with args: ["-P",5037,"-s","MB8DW44999999999","shell","ps"] [debug] [AndroidDriver] Parsed pid: 17929 pkg: com.vsi.pd.doctor! [debug] [AndroidDriver] from: u0_a181,17929,274,1666480,109536,ffffffff,00000000,S,com.vsi.pd.doctor [debug] [AndroidDriver] returning process name: com.vsi.pd.doctor [debug] [AndroidDriver] Found webviews: ["WEBVIEW_com.vsi.pd.doctor"] [debug] [AndroidDriver] Available contexts: ["NATIVE_APP","WEBVIEW_com.vsi.pd.doctor"] [debug] [MJSONWP] Responding to client with driver.setContext() result: null [HTTP] <-- POST /wd/hub/session/ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2/context 200 117 ms - 76 [HTTP] --> POST /wd/hub/session/ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2/element {"using":"id","value":"login"} [MJSONWP] Driver proxy active, passing request on via HTTP proxy [debug] [JSONWP Proxy] Proxying [POST /wd/hub/session/ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2/element] to [POST http://127.0.0.1:8000/wd/hub/session/eb87d1b86ef6331102013b50ee2c0ea4/element] with body: {"using":"id","value":"login"} [debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"eb87d1b86ef6331102013b50ee2c0ea4","status":100,"value":{"message":**"chrome not reachable**\n (Session info: webview=39.0.0.0)\n (Driver info: chromedriver=2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f),platform=Linux 4.4.0-75-generic x86_64)"}} [JSONWP Proxy] Replacing sessionId eb87d1b86ef6331102013b50ee2c0ea4 with ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2 [HTTP] <-- POST /wd/hub/session/ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2/element 200 13 ms - 269 [HTTP] --> POST /wd/hub/session/ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2/appium/app/close {} [debug] [MJSONWP] Calling AppiumDriver.closeApp() with args: ["ebe4a8b1-844c-49f3-9997-9bc1bc0dd8a2"] [debug] [ADB] Getting connected devices... [debug] [ADB] 1 device(s) connected [debug] [ADB] Running '/opt/android-sdk/platform-tools/adb' with args: ["-P",5037,"-s","MB8DW44999999999","shell","am","force-stop","com.vsi.pd.doctor"] [debug] [MJSONWP] Responding to client with driver.closeApp() result: null
With new UIautomator you don't need to switch your driver to webview. It has built in capabilities to identify the elements inside webView. Please update your Android SDK once. Elements inside WebView will be visible in UIAutomator for Android Version 6.0+ versions. However, once you automate the script for Android 6.0+ device, you can use the same script for Android version below 6.0. And also you can see the elements inside webView on Android 6.0+ devices using UIAutomator.
mobilefirst ios error crashing my app
when I make a request to a url, sometimes i get a 403 response and the app crashes I have edited my entitlements-Release.plist and entitlements-debug.plist so that they contain: key-chain-access-groups: Array item 0: $(AppIdentifierPrefix)worklight.group this step let me make the call a few more times, but eventually crashed my app again mfp -v 7.1.0.00.20151227-1730 2016-01-21 12:41:49.332 kmf[2236:1264285] [DEBUG] [WORKLIGHT] +[WLClient sharedInstance] in WLClient.m:165 :: IBMMobilieFirstFoundation.framework version = 7.1-2015/11/14 16:38:36 2016-01-21 12:41:49.362 kmf[2236:1266048] [DEBUG] [WL_AFHTTPRequestOperationManagerWrapper_PACKAGE] +[WLAFHTTPRequestOperationManagerWrapper requestWithURL:] in WLAFHTTPRequestOperationManagerWrapper.m:52 :: Request url is http://sdc01dcxp01.keybank.com:16131/kmf/adapters/kttAdapter/mfp/itemAdd 2016-01-21 12:41:49.372 kmf[2236:1266048] [DEBUG] [WL_AFHTTPRequestOperationManagerWrapper_PACKAGE] -[WLAFHTTPRequestOperationManagerWrapper start] in WLAFHTTPRequestOperationManagerWrapper.m:320 :: Starting the request with URL http://sdc01dcxp01.keybank.com:16131/kmf/adapters/kttAdapter/mfp/itemAdd 2016-01-21 12:41:50.296 kmf[2236:1264285] [DEBUG] [WL_AFHTTPRequestOperationManagerWrapper_PACKAGE] -[WLAFHTTPRequestOperationManagerWrapper requestFailed:error:] in WLAFHTTPRequestOperationManagerWrapper.m:352 :: Request Failed 2016-01-21 12:41:50.298 kmf[2236:1264285] [DEBUG] [WL_AFHTTPRequestOperationManagerWrapper_PACKAGE] -[WLAFHTTPRequestOperationManagerWrapper requestFailed:error:] in WLAFHTTPRequestOperationManagerWrapper.m:353 :: Response Status Code : 403 2016-01-21 12:41:50.308 kmf[2236:1264285] [DEBUG] [WL_AFHTTPRequestOperationManagerWrapper_PACKAGE] -[WLAFHTTPRequestOperationManagerWrapper requestFailed:error:] in WLAFHTTPRequestOperationManagerWrapper.m:354 :: Response Error : Request failed: forbidden (403) 2016-01-21 12:41:50.316 kmf[2236:1264285] [DEBUG] [WORKLIGHT] +[WLClient sharedInstance] in WLClient.m:165 :: IBMMobilieFirstFoundation.framework version = 7.1-2015/11/14 16:38:36 2016-01-21 12:41:50.327 kmf[2236:1264285] THREAD WARNING: ['WLApp'] took '11.582275' ms. Plugin should use a background thread. 2016-01-21 12:41:50.328 kmf[2236:1267145] [DEBUG] [NONE] Request [http://sdc01dcxp01.keybank.com:16131/kmf/authorization/v1/authorization] 2016-01-21 12:41:51.072 kmf[2236:1264285] [ERROR] [CERTIFICATE_MANAGER] +[WLCertManager generateKeyPair:withPublicKeyLabel:withKeySize:] in WLCertManager.m:222 :: generating keypair --> Failed 2016-01-21 12:41:51.121 kmf[2236:1264285] [FATAL] [WORKLIGHT] Uncaught Exception: Keychain returned the following status: -34018 2016-01-21 12:41:51.154 kmf[2236:1264285] *** Terminating app due to uncaught exception 'Unable to generate key pair.', reason: 'Keychain returned the following status: -34018' *** First throw call stack: (0x18374d900 0x182dbbf80 0x18374d848 0x10041217c 0x10041640c 0x1003f8428 0x100371670 0x1000e6860 0x1000e612c 0x18410244c 0x1837055f4 0x183705298 0x1837029ac 0x183631680 0x184b40088 0x1884a8d90 0x100088f88 0x1831d28b8) libc++abi.dylib: terminating with uncaught exception of type NSException
A web server may return a 403 Forbidden HTTP status code in response to a request from a client for a web page or resource to indicate that the server can be reached and understood the request, but refuses to take any further action. Status code 403 responses are the result of the web server being configured to deny access, for some reason, to the requested resource by the client. entitlements-Release.plist and entitlements-debug.plist edits are alright so more clarification check out this link mobilefirst native ios keychain wrapper issue