MifosX - připojení mobilního klienta #168
Labels
No Label
app-basic
app-ckan
app-crisiscleanup
app-cts
app-decidim
app-dhis2
app-frontlinesms
app-gnuhealth
app-kanboard
app-mifosx
app-motech
app-odoo
app-opendatakit
app-pandora
app-sahana
app-seeddms
app-sigmah
app-taarifa
app-ushahidi
critical
CZ
documentation
Doing
enhancement
GMaps
info
Mapbox
needinfo
new-app
OSM
performance
QGIS
regression
suggestion
To Do
upstream
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Disassembler/Spotter-VM#168
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Prosím o prozkoušení připojení mobilního klienta.
MifosX: issue #155
No a Mifos X Android klient pro změnu ani nepípne a ochotně se připojí s jakýmkoliv certifikátem, což je zase druhý extrém :) Doplním na portálovou stránku informace, které je nutno v mobilní aplikaci zadat.
closed via commit
0fb5b51dc7
changed milestone to %2
removed milestone
changed milestone to %1
mobilní klient na androidu po vyplnění login + heslo a adresy
mifosx.spotter.dasm.cz
a portu8443
a tenant IDdefault
automaticky doplní do URL cestu/fineract-provider/api/v1/
čímž se patrně nikam nedobouchá.reopened
Hmmm. To bude nějaké "vylepšení" toho klienta. Přílepek za URL je v pořádku. Dokonce vidím, že požadavek na přihlášení dorazí až na aplikační server a je úspěšně odkýván, ale klient na to nezareaguje. Kredence jsou také v pořádku, protože když zadám špatné heslo, vypadá to v logu jinak. Zkusím zjistit, co se mu nelíbí.
zatim furt stejný
Jo, to je další ticket na který jsem při přeskakování mezi aplikacemi úspěšně zapomněl :/
Jestli Vás můžu poprosit, nahažte mi tady do To Do tickety na kterých mám pracovat přednostně a v tom pořadí, v jakém se jim mám věnovat. Nemusít tam samozřejmě rovnat všech 103 otevřených, ale třeba nějakých top 10.
Teď se na to jdu (opět) podívat.
Ovšem toto je velmi kvalitní heisenbug. Takový se jen tak nevidí.
Sedím tu nad tím už asi 5 hodin, obrátil jsem všechny komponenty vzhůru nohama, porovnal stavy na virtuálkách 3 generace dozadu, povracel všechny změny v kódu za posledních 10 měsíců, které mají něco společného z Mifosem, protrasoval spojení mezi všemi komponentami, až jsem se teď dostal k forenzním nástrojům jako mitmproxy. Bez mitmproxy mi přihlášení selhává, ale když ji zapnu, abych se podíval, co vlastně leze přímo z telefonu a co se na něj vrací, tak mi najednou přihlášení funguje. Mám podezření, že jsme náhodou narazili na nějaký low-level bug po cestě (webový server špatně vysypává buffer nebo tak něco). Detektivka je to napínavá, už se těším na vrahovo odhalení.
držím palce...
Na stará kolena se budu živit jako věštec. Tohle bude možná trochu těžší na vysvětlení, ale věc se má takto:
Když nám Mifos X klient fungoval, používali jsme Alpine 3.7, na kterém byl nginx ve verzi 1.12.2.
Nyní používáme Alpine 3.8.1 na kterém je nginx ve verzi 1.14.1.
Obě verze umí protokol HTTP/2, ale jelikož se stále jedná o poměrně nový protokol (standardizován v květnu 2015), tu a tam se najde nějaký kousek, který by se dal vylepšit. No a jedním takovým kouskem bylo signalizovaní dynamické velikosti tabulky HTTP hlaviček známé jako HPACK (RFC 7541). Ve verzi nginxu 1.13.6 v commitu 63f5d46 toto signalizování opravili, takže jej nginx posílá za všech okolností. Bohužel je ale MifosXdroid postaven na nějaké verzi frameworku, která má podporu HTTP/2 implementovanou taky po staru a polovičatě a informaci o HPACK nechápe, takže pokud mu ji webový server pošle, někde hluboko v kódu sletí na nějaké výjimce a pro uživatele to vypadá, jako by žádná odpověď ze serveru nepřišla.
Jednou z možností jak tohle řešit, je vynutit použití HTTP/1.1 s MifosXdroid klientem. Pokusím se zjistit, zda je to vůbec možné, protože HTTP/2 přes TLS se vyjednává pomocí ALPN (Application-layer negotiation protocol) ještě předtím než se pošle požadavek, tzn. ještě předtím, než máme možnost zjistit, s jakým klientem se bavíme nebo na jakou URL jde. Pokud tohle nepůjde, tak budeme muset podřadit protokol plošně pro celý Mifos X.
wow.. super. já neumím posoudit jaká možnost je pro nás objektivně vhodnější.. ale dám do diskuse ještě jinou variantu. Pokusit se tlumočit problém na githubu nebo na jiné Jira, ať si s tím nějaký Ind poradí... časově mě to netlačí. Vy děláte maximum, občas pro mne až za hranicemi možného :))
Tuhle variantu jsem preemptivně zavrhl, protože na mě všechny ty mobilní aplikace působí, jako že jejich primární účel je nalákat potenciální investory a to, že náhodou něco i umí, je až druhotné. Nicméně jasně, abychom mohli říct, že jsme udělali maximum, otevřu jim issue na githubu. I kdyby byl vývoj aktivní, nečekal bych, že nová verze bude venku kdovíjak rychle, takže proto jsem hledal jak to ohnout na naší straně. Ale třeba mě kluci ušatí překvapí, uvidíme.
Issue #1005 otevřeno v upstreamu.
ok, jasný. Už jsem taky střízliv, co se týče očekávání od těchto mobilních klientů. Takže teď je nahlášeno, uvidíme. Kdyby se dlouho nic nedělo, i to je pro mne informace na co si dát pozor. Pak se případně pustíte do ohnutí. Nechvátám na to.
Když si trochu zaspekuluji, tak tyhle divné sw do pár let čeká zvýšená pozornost, ale nebo převálcování nějakými drahými SaaSy. V přirovnání bych rád, abychom byli při vyšetřování vraždy asi tak napřed, jako insp. Trachta, který už jde zatýkat, zatímco Klečka teprve snímá otisky bot.
... a ano, vím jak to ve filmu končí... to bohužel tak bývá.
Něco jsem hodil... Pak doplním. Vesměs jde o doplnění dokumentace do nějaké kompaktnější formy... pište vše co uznáte za vhodné, i včetně "prázdných kapitol" pro které není co napsat, ale bylo by dobré je později mít.
Pak jste psal o svých návrzích a pokusech s konzultacemi o mapách. To bych rád, intenzitu nechám zcela na vás. Ještě mám v záloze R.N. viz níže.
Pak tam je nakonec ta synchro u Sahany, ... zkuste prozkoumat proč to havaruje, napište ticket F+D a z toho se uvidí co dál. Mě tohle zajímá.
Teď popíšu hrubou představu plánu... Budeme naše issues směřovat k finalizaci první fáze VM... Tj. finalizujem nějakou "alfa" nebo jak to nazvat, appky běží, VM běží, na první pohled to nehavaruje do nějaké trapné smrti ... spousta věcí bude ještě nedořešeno. Já se pak s dotazem obrátím na R. Néteka (už jsem ho zmiňoval) a obratem dostanu pdp nebo takněco.
Od něj bych potřeboval hlavně takový ten "odborný přístup co se týče GIS sw řešení" ... Tj. od něj čekám, že by mi pomohl s návrhem a optimalizacemi některých mapových služeb, aby to dávalo smysl. A nebo mi řekne jiný fakt, který akceptuji. Postup, kdo to nainstaluje a odbuguje a komu zaplatím za facepalmy už vyplyne...
Po té první VM se odvážím opatrně získat první uživatelskou zpětnou vazbu. Pravděpodobně to nebude od cílových uživatelů, ale od frontendisty, který by se mohl vyjádřit k možnostem frontendu. Taky z toho vyplyne, koho ukecám na frotnendový rozvoj VMmgr. a customizaci rozhraní Sahany.
Pro vás bych určitě měl další úkoly, jak se nám tu už vršily.. tj. realizace distribučního serveru, hostingu, a pak další nápady. Tohle nemá konkrétní termíny, opatrně bych se rád vešel do 2019.
Finančně bych to viděl opět tak, že zaplatím co si řeknete. Teď ke konci roku to sice nevypadá fantasticky, ale nato, že jsem bez stálého zaměstnání, tak nějaké desítky tisíc na část faktury bych měl. Příští rok je pro mne loterie s vysokými sázkami. Jestli nedojde do pár let k ekonomickým problémům, tak dojde k nějakým jiným, protože není novinkou, že svět se v prdel obrací. A jsou určité komodity, které v těchto časech nabývají na hodnotě. Rád bych, abyste měl ode mne dobrý dojem, že nebudu nic dlužný.
...Zatím to v mých životních prohrách je naopak :D a kdybych měl vše, co mi kdo dluží, tak vám píšu z nějaké exotické destinace a neřeším věci, které byste mi stejně neuvěřil..
Prosím tedy... mrkněte na tu dokumentaci abyste s tím byl sám spokojený. Ostatní až potom.
Tak jsem koukal, jestli a jakým způsobem se dá ošetřit ta chyba u MifosXdroidu. Špatná zpráva je ta, že se to na straně serveru nedá udělat jinak než úplným plošným vypnutím HTTP/2 u všech aplikací. Právě proto, že HTTP/2 je vyjednáváno před odesláním požadavku, zapíná a vypíná se v rámci celého TCP portu. To se mi moc dělat nechce, protože to bude mít dopad na výkon.
Dobrá zpráva je, že jsem si na 99% jistý, že jsem identifikoval zastaralou závislost v MifosXdroidu, která za to všechno může. MifosXdroid ke zprostředkování spojení používá OkHttp ve verzi 3.3.1. Dynamická velikost HPACK tabulky je špatně podporovaná od verze 3.4.0 a správně pak od verze 3.5.0. Používaná verze 3.3.1 vyšla 24. května 2016, takže s aktualizacemi se evidentně nepřetrhnou. Mám šílený nápad zkusit si nainstalovat Android studio, komponentu v závislostech aktualizovat a zkompilovat si vlastní APK balík pro Android. V životě jsem to nedělal. Bude sranda.
Tak to mě poser. Po instalaci asi 10 GB runtimů, frameworků, závislostí, kompilátorů, linkerů, packagerů a jiné černé magie jsem prostě přepsal verzi závislosti na 3.5.0 a nechal vytvořit APK. Chvíli v tom hrkalo a kouřilo se z toho a vypadlo tohle
mifosng-android-release.apk
Tak jsem to nainstaloval... a vono to funguje! (Ale pozor, je to o 140 commitů a rok a půl vývoje novější než ta verze 1.0.1, kterou mají v releasech)
Pošlu jim PR. Pak ať si s tím dělají, co chtějí.
Submitnuto PR #1006 do upstreamu.
Jestli se rok a půl neměli k tomu vytvořit nový release, pochybuju, že naše PR to změní. Takže to moje zkompilované APK pak nejspíš nahrajeme někam k Vám, až budeme řešit distribuční server a WordPressy, a budeme na něj odkazovat tam.
mentioned in issue #134
zdá se že se probudili.
BTW.. myslíte že se vám podaří v příštím týdnu refreshnout VM? #311
closed