Miranda NG Official Community Forum

Forum for English speaking Miranda NG users => Support/Help => Topic started by: riki on 04 09 2018, 17:05:14

Title: Profile pains
Post by: riki on 04 09 2018, 17:05:14
Hello, once again I'm in trouble with Miranda  ???

I've made no Miranda use for 2-3 weeks. Now, after updating to miranda-ng-v0.95.8.1 (by auto-updater), Miranda can't open my profile. I have several backups in place, but apparently none of them opens.

I've tried reinstalling Miranda from scratch, both the stable and development version, but my old profile doesn't appear in the list of profiles on startup. I am not given a choice between database drivers, only MDBX is proposed. But I think my profile is now in MMAP format.

What should I do? Maybe reverting to an older Miranda? I'm not sure which version I was using. I usually update as soon as the updater suggests it, but I might have skipped some of the recent updates (up to maybe 4-6 weeks ago), because I was afraid exactly of this.

NOTE: I've read some similar messages on this forum, so I point out it's not a 32/64 bit issue, because I never used these profiles on 64 bit.
Title: Re: Profile pains
Post by: Vulpix on 04 09 2018, 21:57:53
Yeah...

How big is your profile? 32bit miranda limit is ~430MB (when using mdbx). Your profile should be in mdbx format. If it is not, miranda will offer an option to convert it. Old miranda won't be able to open mdbx profile at all.

It's also possible that all your old backups are unreadable because the miranda from some time ago was not creating autobackups correctly. If you created your backups by turning off miranda and copying the profile elsewhere, it should work.

If none of this works, you can try to put your profile somewhere, create a blank profile, start miranda and then import your old profile. For some reason this generally works (you might lose some settings but generally histories, contacts and everything else should be intact).

If you are able to run the old miranda with your old profile, you can fix this by exporting all of your settings, then doing the import on new miranda, then starting miranda in service mode, deleting all settings and importing the previously exported settings. (settings only, not contacts).

I've gone through most of these pains and I'm sure we can do something to get your miranda going, but we'll need more info
Title: Re: Profile pains
Post by: riki on 05 09 2018, 09:03:13
Thanks for your reply, Vulpix. I'll try to address all your points.

How big is your profile? 32bit miranda limit is ~430MB (when using mdbx).
My backup coverage is a bit sparse unfortunately. My profile backups are between 180 and 250 MB. In late April, a couple of backups strangely reached 500MB without Miranda crashing. Following backups have OK sizes: I think I used Database -> Compact.

Your profile should be in mdbx format.
They all are, from mid-April on. Driver names: I mixed up - mdbx is the new one, got it.

Old miranda won't be able to open mdbx profile at all.
When I said "old Miranda", I was thinking of the one right before the update that broke things for me, just a few days ago. That is, post mdbx switch already.

With this "old" Miranda, I managed to open a backup from April 24, 2018, that looks fine and is 189 MB long. I exported all the settings via Miranda menu -> Dbeditor++.

Apparently, following backup .dat files won't open or import from ("Error loading source file, exiting").

Do I have any other options? What really hurts are the conversations, some of which precious, the contacts, the several annotations I made in the info field.

EDIT: I managed to sync until mid-June. Found a working backup. Searching for working ones is really a pain. It seems like the notes (User details -> Notes) are gone. Can you suggest a way to restore them explicitly? They are important for me.
Title: Re: Profile pains
Post by: Vulpix on 05 09 2018, 14:14:52
Those are stored with the contacts themselves.

If you have a working backup with such notes present, you should be able to export the config using dbeditor++ and then import them either manually or by copypasting.

Notes are stored in the database in Contacts->Contact->UserInfo->MyNotes (you can navigate there using db editor). Worst case scenario you can just export all settings for contacts and copypaste those into the new profile, or you can just copypaste from the old miranda profile by navigating there via dbeditor++ and double clicking on the MyNotes to display its value in a window.

To be honest these notes should be imported when migrating or importing a profile, so it's strange they were not.
Title: Re: Profile pains
Post by: cys on 05 09 2018, 19:13:13
Hey,

I just returned from my vacation and run into the same problem. I allowed updated to autoupdate and then none of my profiles loaded. In accounts option I have seen them actually but they were disabled.
Investigating further I noticed that in options/plugins i had all my plugins responsible for the protocols missing. Gone.
Long story short I found the solution:
0. close miranda (obviously hehe, but added just in case this point)
1. To to miranda download homepage (https://www.miranda-ng.org/en/downloads/) and downloaded the appropriate 7-zip archive set. For me it was: Stable version (0.95.9) / 64bit
2. unzip the content of "Plugins" folder from the zipped installation pack into your miranda folder
3. start your miranda. All the setup will magically click into place.

At least this is what I have done to fix mine after some struggling.

Hope it helps!
Title: Re: Profile pains
Post by: riki on 06 09 2018, 19:26:33
@Vulpix, thanks again.

Those are stored with the contacts themselves.

[...]

To be honest these notes should be imported when migrating or importing a profile, so it's strange they were not.
For some reason, they were gone from that backup, but I found some (possibly all?) in an older one :)

Since you're so helpful, and know quite a few things about Miranda, I have a few more questions for you.

- Importing contacts and conversations from my past backups skipped some contacts I used to have on a now defunct app/protocol. Since that plugin isn't available anymore, the import plugin doesn't create a local account for me. So contacts and conversations can't be recovered. Is there any workaround?

- Is it possible to import a conversation from a text file (saved by Miranda itself)? If so, how?


@cix

I don't have a problem with missing plugins. It's a database corruption issue. Glad your method worked for you!

Title: Re: Profile pains
Post by: Vulpix on 06 09 2018, 22:01:46
1) for importing from a backup that uses a now-deprecated protocol, you could ask Ghazan to include it in the import.dll like he did for various other protos. Alternatively you can "upgrade" the protocol to Dummy - Dummy will be imported. See more details here - "how to 'upgrade' a protocol to Dummy": https://wiki.miranda-ng.org/index.php?title=Plugin:Dummy

2) yes it is, miranda (the latest one) supports json import via import.dll itself (right click on user -> import-> select a "json" filetype and then select the json to import). The plugin that creates such jsons from ongoing conversations is called MsgExport. You can install it and export your conversations to see what it looks like, in case you want to somehow import such conversations into miranda by converting them from some other text source.

2b) Old miranda has a different plugin called ImportTXT (it was recently killed off). It only works on 32bit version of miranda but it can import various text formats as well as binary formats such as for example mContacts .dat export or history++ export. It works somewhat okay on old miranda but I strongly suggest you take backups before you do any of these shenanigans. A virtual machine snapshot is perfect for this.
Title: Re: Profile pains
Post by: riki on 10 09 2018, 12:01:45
Hello Vulpix, your replies are always useful and informative!

1) for importing from a backup that uses a now-deprecated protocol, you could ask Ghazan to include it in the import.dll
(snip)
 Alternatively you can "upgrade" the protocol to Dummy
(snip)
 https://wiki.miranda-ng.org/index.php?title=Plugin:Dummy
I will try upgrading before bothering Ghazan. Thanks.

Quote
2) yes it is, miranda (the latest one) supports json import via import.dll itself (right click on user -> import-> select a "json" filetype and then select the json to import). The plugin that creates such jsons from ongoing conversations is called MsgExport. You can install it and export your conversations to see what it looks like, in case you want to somehow import such conversations into miranda by converting them from some other text source.
I've been using MsgExport for a very long time - probably since it was introduced. However, I never noticed JSON export. Maybe it's a new feature. I have hundreds of .txt files with the exported conversations in human-readable form (not json). I would like to reimport some of them! I've suffered data loss already a few times, and I had autoexport, so I've got (almost) all conversations sprinkled here and there. But I'm afraid only JSON format is importable, right?

At the moment I'm wary of updating Miranda and plugins. My last update destroyed my profile.dat. How to know when it is safe to resume regular updating?

Quote
2b) Old miranda has a different plugin called ImportTXT
I will try this as a last resort, but I'm afraid I've got to find some old backup of the whole Miranda executable folder...

I have a terrible week now and I don't think I will be able to do any work fixing my Miranda. I'll update with a new post as soon as I put myself to it. Thanks again!
Title: Re: Profile pains
Post by: Vulpix on 10 09 2018, 16:41:22
Hello!

Yes, JSON export/import is a new feature. The reason behind this is that the ImportTXT plugin which can import MsgExport'd txt uses some library called pcre3.dll which does not exist in 64bit version anywhere. So you are stuck in a loop. You can only import these old text exports using ImportTXT. For this, you not only need older miranda (think about 2weeks back is when ImportTXT got killed) but you also need 32bit miranda, which means you likely can't use your db as it may be over the size limit.

So what you could do is install one of the mirandas that is of older version, create dummy contacts and import your text into them, then update this miranda to latest version and use MsgExport's JSON export to export them into JSON. You can then import these exported JSONs into your current 64bit miranda.

I too have been using MsgExport since forever and had tons of these txt files, and I did exactly this :)
Title: Re: Profile pains
Post by: AnrDaemon on 10 09 2018, 17:54:06
What I would very much like is mContacts format import.
Title: Re: Profile pains
Post by: Vulpix on 10 09 2018, 21:15:26
I used to heavily rely on mContacts, but unfortunately due to how it's implemented, it can happen that all of your old mcontacts become un-importable; all because the format is binary. This has happened several times in the past and then you're stuck with a binary format that you cannot open anywhere. In the case of json, at least it's still sorta human readable so in super worst case scenario at least you have a text file.

But yeah, this whole profile and import/export thing is quite painful...

That being said, jsonimport is good now. It's got all the good stuff like mcontacts - it's fast and it imports events too (like avatar changes or other state events), so I strongly recommend you give it a go. the speed and event import was the main reason why txt export/import was not good and why this json import is.
Title: Re: Profile pains
Post by: AnrDaemon on 11 09 2018, 10:34:13
Format is binary, but is it stable? Or it uses current database format for export?
Title: Re: Profile pains
Post by: Vulpix on 11 09 2018, 16:54:49
Stable or not, it doesn't matter if one day you find you need to import your old .dat files and none of them will let you.

https://github.com/miranda-ng/miranda-ng/issues/786 example of this happening.

https://github.com/miranda-ng/miranda-ng/commit/d3cd7864c1d7250003072239482dcd1fb3388466

as you can see structure changed inbetween miranda commits and mcontacts export/import was not able to cope with it... which is why I gave up on binary history format.

Title: Re: Profile pains
Post by: AnrDaemon on 11 09 2018, 19:48:53
Why would anyone use ImportTXT to import binary dump created by an entirely different addon? >.<
Title: Re: Profile pains
Post by: Vulpix on 11 09 2018, 22:45:41
What were you using previously? ImportTXT was the only addon that could import mContacts for "one contact" until import.dll received support for "just one" contact in some of the recent commits.

ImportTXT was fully capable of importing mContacts data format. History++ cannot import, it can only export.

And there is/was no other plugin that exports history (partial, entire, etc) into mContacts that I know of.

What are you using?
Title: Re: Profile pains
Post by: AnrDaemon on 11 09 2018, 22:55:17
I only ever used mContacts itself.
That's why I'm asking.
Title: Re: Profile pains
Post by: riki on 21 09 2018, 12:22:49
The upcoming week I should be able to allocate some time to fix this Miranda thing. It seems my older Miranda executable directory backups have no importTXT plugin. Can you suggest some place where I might be able to get an old enough Miranda and the importTXT plugin?
Title: Re: Profile pains
Post by: Vulpix on 21 09 2018, 19:30:00
Oh.. I don't actually know if there is a miranda "archive" but I don't think there is... I can have a look if I have it somewhere.
Title: Re: Profile pains
Post by: Goraf on 21 09 2018, 19:56:25
riki, Vulpix -> Surprise (https://www.miranda-ng.org/distr/deprecated/)  ;)
Title: Re: Profile pains
Post by: Vulpix on 22 09 2018, 11:13:49
Sounds good. Especially seeing as I was holding off on updating to the last few mdbx commits - I did just now and my profile got rekt.

I wonder how many times this has to happen before Ghazan will agree to stop pushing mdbx commits before letting me test those. ( https://forum.miranda-ng.org/index.php?topic=5542.0 like here)

Title: Re: Profile pains
Post by: riki on 22 09 2018, 12:44:29
Sounds good. Especially seeing as I was holding off on updating to the last few mdbx commits - I did just now and my profile got rekt.
This is how my last 2 crashes happened, too.
Maybe it is possible to code an extra security layer until the mdbx driver has proven to be reliable beyond doubt - like bulletproof live .dat backups, or DB verification/tuning/cleanup utilities...?

Quote
I wonder how many times this has to happen before Ghazan will agree to stop pushing mdbx commits before letting me test those. ( https://forum.miranda-ng.org/index.php?topic=5542.0 like here)
Or creating a new update channel such as "Alpha - use at your risk only on backed up profiles"?
Title: Re: Profile pains
Post by: riki on 22 09 2018, 12:45:59
Thank you for the surprise, Goraf!
riki, Vulpix -> Surprise (https://www.miranda-ng.org/distr/deprecated/)  ;)
Any specfic advice for a version with a working importTXT  plugin that will open recent (mdbx) profiles?
Title: Re: Profile pains
Post by: Vulpix on 22 09 2018, 14:50:09
It should be anything before this commit:

https://github.com/miranda-ng/miranda-ng/commit/7caad1d40b0a161b62a59ed252ca6a40d0a73633

Because after this commit, ImportTXT got killed.
Title: Re: Profile pains
Post by: riki on 16 10 2018, 17:30:28
Well only now I found some time to try reimporting my old conversations from simple (not JSON) text files.
I'm going to download Miranda v0.95.8, last modified 2018.08.15, from here: https://www.miranda-ng.org/distr/deprecated/0.95.8 , which I see contains importtxt.dll in the plugins dir. So it should be good.

By the way, I found another nasty db bug today (but I had everything backed up), I will post about it in the bug report subforum.

Title: Re: Profile pains
Post by: erthink on 28 08 2019, 10:50:35
I am the main libmdbx developer.
Please see my comment in the relevant issue (https://github.com/miranda-ng/miranda-ng/issues/1597#issuecomment-525688561).