poboiko (Igor Poboiko)
User

Projects

User does not belong to any projects.

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Monday

  • Clear sailing ahead.

User Details

User Since
Feb 14 2017, 10:36 AM (95 w, 3 d)
Availability
Available

Recent Activity

Wed, Nov 21

poboiko added a comment to D16878: Resolve symlinks in exclude folders.

I believe can do something better here.
I think if we stick to canonical paths everywhere, and resolve symlinks ASAP (but still follow them), that might solve all the problems.

Wed, Nov 21, 3:28 PM · Baloo, Frameworks

Thu, Nov 15

poboiko added a comment to D16878: Resolve symlinks in exclude folders.

IMHO we should just disallow specifying symlinks in both include/excludeFolders. The user can just use exludeFolders = /storage/stuff if he wants to exclude it.

Thu, Nov 15, 9:40 AM · Baloo, Frameworks
poboiko added a comment to D16876: [balooctl] Add possibility to create a copy of the index without freelist.

You are replicating mdb_copy -c here.
[...]

Thu, Nov 15, 9:30 AM · Baloo, Frameworks
poboiko added a comment to D16498: [KFileMetaData] Add extractor for DSC conforming (Encapsulated) Postscript.

It seems like you've pushed something related to XML extractor as well

Thu, Nov 15, 9:23 AM · Baloo, Frameworks

Nov 14 2018

poboiko accepted D16498: [KFileMetaData] Add extractor for DSC conforming (Encapsulated) Postscript.

Apart from trivial comment, this looks fine. I've tested it on my setup (with bunch of (e)ps files), and randomly chosen files seems to be indexed nicely. It also reduced the size of the index by almost 50MB, because those are not indexed as plaintext anymore :)
Yet I would also vote for replacing it (eventually) with a full-featured extractor based on libspectre
(I'm not a security specialist in any way, but that CVE doesn't look too harmful, and from my point of view it's not worth to abandon full support of (E)PS because of it)

Nov 14 2018, 3:50 PM · Baloo, Frameworks
poboiko requested review of D16878: Resolve symlinks in exclude folders.
Nov 14 2018, 3:14 PM · Baloo, Frameworks
poboiko requested review of D16876: [balooctl] Add possibility to create a copy of the index without freelist.
Nov 14 2018, 2:10 PM · Baloo, Frameworks
poboiko updated the diff for D15983: React to config updates inside indexer.

It's a bad idea to removeRecursively starting from root of the tree (documentid 0).
If user has indexed /home/username folder, there is also an index entry for /home (that's how IdTreeDB works).
However, /home should not be indexed, according to checks (because it's not in includeFolders, while /home/username is)
This will lead to removeRecursively("/home") call, which will wipe index for /home/username as well.

Nov 14 2018, 1:47 PM · Baloo, Frameworks
poboiko updated the diff for D15983: React to config updates inside indexer.

Rebase on master

Nov 14 2018, 1:11 PM · Baloo, Frameworks

Oct 30 2018

poboiko accepted D15826: [Balooshow] Avoid out-of-bounds access when accessing corrupt db data.

Yep, fine by me

Oct 30 2018, 12:26 PM · Baloo, Frameworks
poboiko added a comment to D16523: [Extractor] Replace homegrown IO handler with QDataStream, catch HUP.

That's nice! I'll test it a little.

Oct 30 2018, 8:13 AM · Baloo, Frameworks
poboiko added a comment to T9595: [KAddressbook] Use KPeople model for contact list.

Sorry, I've postponed this one for some time :(

Oct 30 2018, 7:31 AM · KDE PIM
poboiko updated the summary of D15960: Don't check if file is directory based on mime-type.
Oct 30 2018, 7:29 AM · Baloo, Frameworks

Oct 20 2018

poboiko added a comment to T9805: Overhaul Baloo database scheme.

BTW. Is there any reason why i.e. inside PostingDB Baloo stores key -> encoded list of values, instead of using MDB_DUPSORT | MDB_DUPFIXED (which allow to store multiple values for keys)?

Oct 20 2018, 7:57 PM · Baloo
poboiko abandoned D15959: Wait for the extraction process to finish before scheduling.

Dropped in favor of D16265: [Scheduler] Use flag to track when a runner is going idle, which handles this problem better.

Oct 20 2018, 1:08 PM · Baloo, Frameworks
poboiko added a comment to D16265: [Scheduler] Use flag to track when a runner is going idle.

I like it, it's better than D15959: Wait for the extraction process to finish before scheduling.
And it seems to be working, as far as I can see :)

Oct 20 2018, 1:07 PM · Baloo, Frameworks
poboiko added inline comments to D16266: [Extractor] Make extractor crash resilient.
Oct 20 2018, 9:16 AM · Baloo, Frameworks

Oct 17 2018

poboiko added inline comments to D16266: [Extractor] Make extractor crash resilient.
Oct 17 2018, 1:16 PM · Baloo, Frameworks
poboiko added inline comments to D16266: [Extractor] Make extractor crash resilient.
Oct 17 2018, 10:01 AM · Baloo, Frameworks

Oct 16 2018

poboiko added a comment to T9873: Investigate memory issues in Baloo.

Here is some test data for my (rather simple) setup.

Oct 16 2018, 6:54 PM · Baloo
poboiko committed R286:5eee9ac75b7d: Don't crash on invalid exiv2 data (authored by poboiko).
Don't crash on invalid exiv2 data
Oct 16 2018, 1:56 PM
poboiko closed D16165: Don't crash on invalid exiv2 data.
Oct 16 2018, 1:56 PM · Baloo, Frameworks

Oct 15 2018

poboiko created T9873: Investigate memory issues in Baloo.
Oct 15 2018, 4:44 PM · Baloo

Oct 14 2018

poboiko added a comment to D16165: Don't crash on invalid exiv2 data.

Unfortunately 375131 is quite vague, they all speak about "baloo" hanging, but as "baloo" is not a single process, it is impossible to tell for sure which process crashes or hangs.

Apparent hangs of baloo_file are easy to produce, create a file 'baloo_file_extractor' with the following content:

#! /bin/bash
echo "S foobar"

make it executable, and then (after killing the current baloo_file), run PATH=./<path_with_fake_extractor> <path_to>/baloo_file. When you run baloo_monitor, you will see it says "Indexing foobar", but will make no further progress as the fake extractor has exited (equivalent to a crash here).

When you run baloo_file from build/bin, make sure you have the relevant baloo_file_extractor in the PATH first.

Oct 14 2018, 4:59 PM · Baloo, Frameworks

Oct 13 2018

poboiko added a comment to D16165: Don't crash on invalid exiv2 data.

These three should be CCBUG: (not test file, not able to confirm fixed), while 375131 should be BUG: (confirmed and fixed).

Oct 13 2018, 5:52 PM · Baloo, Frameworks
poboiko added a comment to D16165: Don't crash on invalid exiv2 data.

I guess bugs
352856
353848
361259
will also be fixed by this?

Oct 13 2018, 8:56 AM · Baloo, Frameworks
poboiko updated the diff for D16165: Don't crash on invalid exiv2 data.

Replaced size() by count(), which is more appropriate here

Oct 13 2018, 8:54 AM · Baloo, Frameworks
poboiko updated the summary of D16165: Don't crash on invalid exiv2 data.
Oct 13 2018, 8:51 AM · Baloo, Frameworks

Oct 12 2018

poboiko requested review of D16165: Don't crash on invalid exiv2 data.
Oct 12 2018, 7:12 PM · Baloo, Frameworks
poboiko added a comment to D15985: [balooctl] Print current state & indexing file when monitor starts.

That's weird. I caught it only once and thought that it is because I trivially forgot the endl. But now I cannot reproduce it anymore.
Seems like it should be fine, since we do emit finished signal, which will write the 'OK' part.
Sorry for the noise.

Oct 12 2018, 2:46 PM
poboiko added a comment to D15985: [balooctl] Print current state & indexing file when monitor starts.

No, definitely not, see D15995.

Oct 12 2018, 1:13 PM
poboiko added a comment to D15985: [balooctl] Print current state & indexing file when monitor starts.

Woops! startedIndexingFile does not print a newline. I guess I can just add m_out << endl...

Oct 12 2018, 8:10 AM
poboiko updated the diff for D15983: React to config updates inside indexer.

Address raised issues

Oct 12 2018, 8:05 AM · Baloo, Frameworks
poboiko added a comment to D15826: [Balooshow] Avoid out-of-bounds access when accessing corrupt db data.

I'm not entirely sure how translating system works, but won't it pop up as 4 identical lines in i.e. Lokalize, causing frustration to our translators?
It would also mean that if we would want to change the message, we would have to do it in 4 different lines.

Oct 12 2018, 7:55 AM · Baloo, Frameworks
poboiko added a comment to D15939: Perform checks for unindexed files and stale index entries on startup.

https://phabricator.kde.org/D11529 was already up for review, implemented the index cleaner and checked for removeable volumes before removing index entries. Exporting the storagedevices object was required: https://phabricator.kde.org/D15047. The alternative, implementing a path lookup function is here: https://phabricator.kde.org/D15843.

Oct 12 2018, 7:40 AM · Baloo, Frameworks
poboiko added a comment to D15959: Wait for the extraction process to finish before scheduling.

This works for me:

 void FileIndexScheduler::scheduleIndexing()
 {
-    if (m_threadPool.activeThreadCount() || m_indexerState == Suspended) {
+    if (m_indexerState == Suspended) {
         return;
     }
Oct 12 2018, 7:34 AM · Baloo, Frameworks

Oct 9 2018

poboiko added a comment to D15939: Perform checks for unindexed files and stale index entries on startup.

Does this run at startup? If so, this will erase the entries of files on a removable volume not already mounted.

Whoa, thanks for the notice. Not cool, forgot about it.
Probably need to add some checks in IndexCleaner, about the device.

Oct 9 2018, 6:33 AM · Baloo, Frameworks

Oct 8 2018

poboiko added a comment to D15939: Perform checks for unindexed files and stale index entries on startup.

Hah, looks like you pushed a commit for it last year!

I'm not wedded to symlink support, but if we're not going to do it, we should close the bug with some good reasons.

Oct 8 2018, 10:33 PM · Baloo, Frameworks
poboiko committed R293:f8897a2511c4: Perform checks for unindexed files and stale index entries on startup (authored by poboiko).
Perform checks for unindexed files and stale index entries on startup
Oct 8 2018, 10:26 PM
poboiko closed D15939: Perform checks for unindexed files and stale index entries on startup.
Oct 8 2018, 10:26 PM · Baloo, Frameworks
poboiko committed R293:a9696978322c: [balooctl] Print current state & indexing file when monitor starts (authored by poboiko).
[balooctl] Print current state & indexing file when monitor starts
Oct 8 2018, 10:16 PM
poboiko closed D15985: [balooctl] Print current state & indexing file when monitor starts.
Oct 8 2018, 10:16 PM
poboiko committed R293:3fb45683fd27: [balooctl] Monitor also for state changes (authored by poboiko).
[balooctl] Monitor also for state changes
Oct 8 2018, 10:12 PM
poboiko closed D15943: [balooctl] Monitor also for state changes.
Oct 8 2018, 10:12 PM · Baloo, Frameworks
poboiko committed R293:7e5c005e6a3b: [balooctl] Fix "index" command with already indexed, but moved file (authored by poboiko).
[balooctl] Fix "index" command with already indexed, but moved file
Oct 8 2018, 10:11 PM
poboiko closed D15944: [balooctl] Fix "index" command with already indexed, but moved file.
Oct 8 2018, 10:11 PM · Baloo, Frameworks
poboiko added inline comments to D15826: [Balooshow] Avoid out-of-bounds access when accessing corrupt db data.
Oct 8 2018, 9:40 PM · Baloo, Frameworks
poboiko added a comment to D11828: Simplify orPostingIterator and make it faster.

Looks fine to me. But do we really need to optimize it? I mean, I didn't see it running more than ~20 ms, and with this patch for small queries it runs like ~16 ms. Worst case is when user types something in KRunner, but again, the lag is negligible there.

Oct 8 2018, 7:20 PM · Baloo, Frameworks
poboiko added a comment to D15826: [Balooshow] Avoid out-of-bounds access when accessing corrupt db data.

Maybe we should print also a suggestion to user, something like (maybe rephrase it better)

WARNING:
Looks like your index is corrupted.
We suggest you to run `balooctl disable && balooctl disable` to wipe it and rebuild from scratch

so they won't have to google what to do (there's still not much can be done in that case)

Oct 8 2018, 7:09 PM · Baloo, Frameworks

Oct 7 2018

poboiko added a comment to D15826: [Balooshow] Avoid out-of-bounds access when accessing corrupt db data.

I never experienced such corruption, though, but sanity check shouldn't hurt.

Oct 7 2018, 9:22 AM · Baloo, Frameworks
poboiko added a comment to T9805: Overhaul Baloo database scheme.

I would like to comment on that and add my 2 cents:

Oct 7 2018, 9:04 AM · Baloo

Oct 6 2018

poboiko added a comment to D15939: Perform checks for unindexed files and stale index entries on startup.

I've found the relevant bug: https://bugs.kde.org/show_bug.cgi?id=333678

Oct 6 2018, 8:22 PM · Baloo, Frameworks
poboiko requested review of D15985: [balooctl] Print current state & indexing file when monitor starts.
Oct 6 2018, 5:46 PM
poboiko added a comment to D15959: Wait for the extraction process to finish before scheduling.

That doesn't looks like it works all the time: sometimes I still have this issue.
Apparently, it still can happen that even when the process is finished, signal is emitted, but the thread is not finished yet.

Oct 6 2018, 4:38 PM · Baloo, Frameworks
poboiko requested review of D15983: React to config updates inside indexer.
Oct 6 2018, 4:27 PM · Baloo, Frameworks
poboiko added a comment to D15939: Perform checks for unindexed files and stale index entries on startup.

Works great, thanks for all these Baloo patches! They are very much appreciated. Code looks good. As with the others, please commit for Frameworks 5.52.

While you're cranking away at these, might I suggest a few others that are sorely needed:

I can look at these, shouldn't be too hard.

Oct 6 2018, 10:51 AM · Baloo, Frameworks
poboiko updated the summary of D15943: [balooctl] Monitor also for state changes.
Oct 6 2018, 10:16 AM · Baloo, Frameworks
poboiko added a comment to D15943: [balooctl] Monitor also for state changes.

Works for me and the code looks sane. Looks like this fixes https://bugs.kde.org/show_bug.cgi?id=364858, so can you add BUG: 364858 and FIXED-IN: 5.52 to the summary section and also make the changes that @bruns requested? Thanks!

Weird, bug 364858 should be fine as it is - user asks for a way to display files Baloo is currently processing, but that's exactly what monitor does (even without this patch).

Oct 6 2018, 10:14 AM · Baloo, Frameworks
poboiko updated the summary of D15944: [balooctl] Fix "index" command with already indexed, but moved file.
Oct 6 2018, 10:08 AM · Baloo, Frameworks

Oct 5 2018

poboiko requested review of D15960: Don't check if file is directory based on mime-type.
Oct 5 2018, 8:23 AM · Baloo, Frameworks
poboiko requested review of D15959: Wait for the extraction process to finish before scheduling.
Oct 5 2018, 7:57 AM · Baloo, Frameworks
poboiko updated the summary of D15943: [balooctl] Monitor also for state changes.
Oct 5 2018, 7:25 AM · Baloo, Frameworks

Oct 4 2018

poboiko updated the diff for D15939: Perform checks for unindexed files and stale index entries on startup.

Fixed typos

Oct 4 2018, 7:31 PM · Baloo, Frameworks
poboiko requested review of D15944: [balooctl] Fix "index" command with already indexed, but moved file.
Oct 4 2018, 1:10 PM · Baloo, Frameworks
poboiko requested review of D15943: [balooctl] Monitor also for state changes.
Oct 4 2018, 1:02 PM · Baloo, Frameworks
poboiko committed R293:ade5188979c4: Fix invalid char constant (authored by poboiko).
Fix invalid char constant
Oct 4 2018, 12:58 PM
poboiko closed D15941: Fix invalid char constant.
Oct 4 2018, 12:57 PM · Baloo, Frameworks
poboiko updated the diff for D15941: Fix invalid char constant.
Oct 4 2018, 12:55 PM · Baloo, Frameworks
poboiko added a comment to D15941: Fix invalid char constant.

I think you updated the wrong diff here

Oct 4 2018, 12:52 PM · Baloo, Frameworks
poboiko updated the diff for D15941: Fix invalid char constant.

[balooctl] Monitor also for state changes

Oct 4 2018, 12:51 PM · Baloo, Frameworks
poboiko requested review of D15941: Fix invalid char constant.
Oct 4 2018, 12:42 PM · Baloo, Frameworks
poboiko requested review of D15939: Perform checks for unindexed files and stale index entries on startup.
Oct 4 2018, 12:14 PM · Baloo, Frameworks

Oct 2 2018

poboiko added a comment to D15637: Make DBusMenu work correctly with dynamically generated menus.

From what I can tell this patch trades one bug (menu closing unexpectedly) for another one (menus erratically resizing/repositioning themselves).

As for LyX it's not just menu closing unexpectedly, but it's just totally unusable: I cannot access menu using the applet at all. That was the main reason I started looking into it.

Oct 2 2018, 3:36 PM · Plasma
poboiko added a comment to D15637: Make DBusMenu work correctly with dynamically generated menus.

Ping?

Oct 2 2018, 10:49 AM · Plasma
poboiko added a comment to T9595: [KAddressbook] Use KPeople model for contact list.

I've implemented ContactGroup support, so now the plugin seems to be fully functional, so I'm switching to KAddressBook side of the story. Apart from adopting View to work with PersonModel, we also need few other stuff.

  • As far as I understood, we want to ship the plugin with akonadi-contacts. Yet if we want to feed an EntityTreeModel from KAddressBook, we need AkonadiDataSource to be accessible from there. That would mean that we need to:
    • Export those headers & link KAddressBook to plugin library. Sounds a bit weird to me, those plugins are supposed to be runtime dependencies, and we shouldn't break if those are removed.
    • Or we can just ship that plugin with KAddressBook. Which is also a bit weird, since it's a general-purpose plugin, which in principle can be used within any application (if there will be anything that supports KPeople...)
    • We can also add another API for PersonPluginManager to feed arguments (QVariantList args) to a plugin (we don't know the dataSourceId before loading it, but we know KPluginLoader::pluginName, which I believe should be akonadi_kpeople_plugin), without having an access to a class itself.
  • UI for contacts merging and unmerging (a simple button in context menu / toolbar?)
  • Code to merge several KContacts::Addressee into a single one, to feed it to the Contact Details Viewer when user selects a metacontact
    • (?) Might be useful to be implemented inside KContacts framework
    • (?) In principle, several contacts might have different names / avatars (and other unique fields), and it would be nice if user could specify which one he would like to use for metacontact. For example, KPeople does it basically randomly - first contact that appears in its internal list is returned. Don't really now how to do it the simple way.
  • UI for editing a metacontact. I guess we can just ask user which of the subcontacts he wants to modify, and then just show him existing dialog for a single contact.
    • An "Edit [...]" item for each subcontact in the context menu?
    • A separate dialog that asks user which of subcontacts he would like to modify? (gosh, I hate UIs which show dozens of nested sub-dialogs...)
    • A drop-down menu (or any other UI element) inside an already existing Contact Edit Dialog, that allows user to specify the subcontact?
  • UI for duplicates suggestions - that's a must-have feature (based on names / phones / emails, maybe something else). There is some UI for it inside KPeople, but I haven't looked into it yet.
Oct 2 2018, 9:03 AM · KDE PIM

Oct 1 2018

poboiko committed R307:b3114c4d429e: Fix signals not being emitted when merging two persons (authored by poboiko).
Fix signals not being emitted when merging two persons
Oct 1 2018, 10:40 AM
poboiko closed D15851: Fix signals not being emitted when merging two persons.
Oct 1 2018, 10:40 AM · Frameworks

Sep 30 2018

poboiko requested review of D15851: Fix signals not being emitted when merging two persons.
Sep 30 2018, 9:20 AM · Frameworks

Sep 29 2018

poboiko added a comment to D15816: Don't crash when working with non-KTp accounts.

Sorry for that! Of course it should be QStringLiteral("ktp://") instead. I've fixed it in master

Sep 29 2018, 11:20 AM
poboiko committed R145:09b6fd27cd3a: Use QStringLiteral for string constants (authored by poboiko).
Use QStringLiteral for string constants
Sep 29 2018, 11:20 AM
poboiko added a comment to T9595: [KAddressbook] Use KPeople model for contact list.

So far merging works, but occasionally it crashes (didn't find reliable way to reproduce). It also works weirdly when I try to merge two (already) metacontacts.
Interestingly enough, it doesn't crash the testing application, but plasmashell. My guess that it's due to KTp Instant Messanging plasmoid, which interacts with Plasma.
Will investigate...

Sep 29 2018, 7:41 AM · KDE PIM

Sep 28 2018

poboiko added a comment to T9595: [KAddressbook] Use KPeople model for contact list.

Merge/Unmerge functionality appeared to be fairly simple, it's done via KPeople::mergeContacts(QStringList &uris) and KPeople::unmergeContact(QString uri). It kinda already works (as simple as that), see the repo.

Sep 28 2018, 4:44 PM · KDE PIM
poboiko committed R145:b16aaea00e14: Don't crash when working with non-KTp accounts (authored by poboiko).
Don't crash when working with non-KTp accounts
Sep 28 2018, 4:05 PM
poboiko closed D15816: Don't crash when working with non-KTp accounts.
Sep 28 2018, 4:05 PM
poboiko committed R145:295882957136: Don't show large empty chat log if contact doesn't support it (authored by poboiko).
Don't show large empty chat log if contact doesn't support it
Sep 28 2018, 4:03 PM
poboiko closed D15817: Don't show large empty chat log if contact doesn't support it.
Sep 28 2018, 4:03 PM
poboiko committed R307:ea6fc3cb3b95: Don't crash if person gets removed (authored by poboiko).
Don't crash if person gets removed
Sep 28 2018, 4:01 PM
poboiko closed D15812: Don't crash if person gets removed.
Sep 28 2018, 4:01 PM · Frameworks
poboiko updated the test plan for D15817: Don't show large empty chat log if contact doesn't support it.
Sep 28 2018, 2:19 PM
poboiko requested review of D15817: Don't show large empty chat log if contact doesn't support it.
Sep 28 2018, 2:18 PM
poboiko requested review of D15816: Don't crash when working with non-KTp accounts.
Sep 28 2018, 2:12 PM
poboiko added a comment to T9595: [KAddressbook] Use KPeople model for contact list.

Sorry for long delay, was busy with other stuff...

Sep 28 2018, 12:43 PM · KDE PIM
poboiko requested review of D15812: Don't crash if person gets removed.
Sep 28 2018, 12:39 PM · Frameworks

Sep 21 2018

poboiko added a comment to D15637: Make DBusMenu work correctly with dynamically generated menus.

Can this potentially throw off the order of items or cause items to be removed that got inserted previously (ID clash?)?

As far as I can see, it should not be the case: those two operations should be totally interchangeable.
Both "insert/update" and "remove" actions are based on rootItem.children (which contains new layout of menu). Menu items that are inside it got updated, those who are not - got removed.

Sep 21 2018, 9:35 AM · Plasma
poboiko requested review of D15637: Make DBusMenu work correctly with dynamically generated menus.
Sep 21 2018, 8:38 AM · Plasma

Sep 17 2018

poboiko committed R108:1115ca84902a: [effects/cubeslide] Fix "sticky" windows detection on Wayland (authored by poboiko).
[effects/cubeslide] Fix "sticky" windows detection on Wayland
Sep 17 2018, 7:30 PM
poboiko closed D15496: [effects/cubeslide] Fix "sticky" windows detection on Wayland.
Sep 17 2018, 7:30 PM · KWin

Sep 16 2018

poboiko added a comment to T9595: [KAddressbook] Use KPeople model for contact list.

I've decided to make a scratch repo and to publish there what is done so far. It includes ported viewer (based on 2014-dated GSoC project), which is a bit broken, but whatever - it still can be used for debugging.
TODO: it would be nice to view all internal data of AbstractContacts there; as well as fancy tree-view with metacontacts & contacts. But that's for the future.

Sep 16 2018, 12:03 AM · KDE PIM

Sep 14 2018

poboiko committed R307:73a72d53325f: Make PersonPluginManager API public (authored by poboiko).
Make PersonPluginManager API public
Sep 14 2018, 12:38 PM
poboiko closed D15431: Make PersonPluginManager API public.
Sep 14 2018, 12:38 PM · Frameworks, KDE PIM